Loading survey_sim/satOrbit/locate_sat.py +4 −2 Original line number Diff line number Diff line Loading @@ -121,7 +121,7 @@ def locateSat(time=2459766.0, OrbitData=None, startId=0, orbDataLen=-1): @jit def locateSat1(time=2459766.0, OrbitData=None, startId=0, orbDataLen=-1): def locateSat1(time=2459766.0, OrbitData=None, startId=0, orbDataLen=-1, calVelFlag=True): if orbDataLen <= 0 and OrbitData is not None: orbDataLen = len(OrbitData) Loading @@ -139,7 +139,9 @@ def locateSat1(time=2459766.0, OrbitData=None, startId=0, orbDataLen=-1): t_ratio = (time - t1) / (t2 - t1) satPos = slerp(OrbitData[i, 1:4], OrbitData[i + 1, 1:4], t_ratio) satVel = slerp(OrbitData[i, 4:7], OrbitData[i + 1, 4:7], t_ratio) if calVelFlag: satVel = slerp(OrbitData[i, 4:7], OrbitData[i + 1, 4:7], t_ratio) nextSid = i break Loading survey_sim/strategies/SurveySim_MSC.py +85 −25 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ Author: Zhang Xin zhangx@bao.ac.cn Date: 2024-09-19 15:53:27 LastEditors: Zhang Xin zhangx@bao.ac.cn LastEditTime: 2024-11-15 15:46:30 LastEditTime: 2024-12-10 21:31:50 FilePath: /CSST_Survey/survey_sim/strategies/SurveySim_MSC.py Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE ''' Loading Loading @@ -31,6 +31,7 @@ import time import os import pickle from scipy import interpolate import numpy as np import jax.numpy as jnp Loading Loading @@ -111,17 +112,40 @@ class SurveySim(object): jump_time = jump_time pNum = 0 for start_end_t in self.betaCons.MSC_time: sec_times = np.arange( start_end_t[0]-0.001, start_end_t[1]+0.001, 5/86400.) len_sat_array = len(sec_times) sat_info_sec = np.zeros([len_sat_array, 5]) for tmp_i, temp_t in enumerate(sec_times): sat_info_sec[tmp_i, 0:3], _, orbitDataId = locateSat1( time=temp_t, OrbitData=self.orbitDat, startId=orbitDataId, calVelFlag=False ) sat_info_sec[tmp_i, 3:] = _utils.getSatSubpoint( sat_info_sec[tmp_i, 0:3], temp_t) orbitDataId = 0 sat_xi = interpolate.interp1d( sec_times, sat_info_sec[:, 0], kind="linear") sat_yi = interpolate.interp1d( sec_times, sat_info_sec[:, 1], kind="linear") sat_zi = interpolate.interp1d( sec_times, sat_info_sec[:, 2], kind="linear") subPoint_xi = interpolate.interp1d( sec_times, sat_info_sec[:, 3], kind="linear") subPoint_yi = interpolate.interp1d( sec_times, sat_info_sec[:, 4], kind="linear") curTime = start_end_t[0] while curTime <= start_end_t[1]: print("Time:", curTime) curTime, obsTime, curPSky, sun, moon, sat, satV, orbitDataId, _ = self.searchOnePointing( curTime=curTime, curPSky=curPSky, orbitDataId=orbitDataId, jump_time=jump_time, endTime=start_end_t[1]) curTime=curTime, curPSky=curPSky, orbitDataId=orbitDataId, jump_time=jump_time, endTime=start_end_t[1], satOrbit_interp=[sat_xi, sat_yi, sat_zi], subPoint_interp=[subPoint_xi, subPoint_yi]) if sun is not None: print("obsTime-------------------:", obsTime) self.outInfo.outInfo_add_obj(jdTime=obsTime, p_lon_ecl=curPSky.ecl_lon, p_lat_ecl=curPSky.ecl_lat, p_ra=curPSky.ra, p_dec=curPSky.dec, sun=sun, moon=moon, sat=sat, sat_vel=satV, isInDeep=curPSky.inDeepFlag) pNum = pNum + 1 if pNum > 1: if pNum > 20: break # 搜索一个是否满足的节点 Loading @@ -136,6 +160,8 @@ class SurveySim(object): orbitDataId=0, jump_time=60, endTime=2460766.0, satOrbit_interp=None, subPoint_interp=None ): final_min_value = MAX_VALUE Loading @@ -152,9 +178,12 @@ class SurveySim(object): curTime=curTime, orbitDat=self.orbitDat, ephlib=self.eph ) sat, satVel, orbitDataId = locateSat1( time=curTime, OrbitData=self.orbitDat, startId=orbitDataId ) # sat, satVel, orbitDataId = locateSat1( # time=curTime, OrbitData=self.orbitDat, startId=orbitDataId # ) sat = np.array([satOrbit_interp[0](curTime), satOrbit_interp[1]( curTime), satOrbit_interp[2](curTime)]) # print(sat-sat_i) # sat1, satVel1, orbitDataId = locateSat1( # time=curTime, OrbitData=self.orbitDat, startId=orbitDataId-10 # ) Loading @@ -171,14 +200,20 @@ class SurveySim(object): lastPointing = [curPSky.ecl_lon, curPSky.ecl_lat] lastPointingCar = [curPSky.x, curPSky.y, curPSky.z] underStarPoint = _utils.getSatSubpoint(sat, curTime) # underStarPoint = _utils.getSatSubpoint(sat, curTime) underStarPoint = np.array([subPoint_interp[0]( curTime), subPoint_interp[1](curTime)]) # print(underStarPoint - underStarPoint1) battery_q = self.bettery_level while saa_constraint.IsInSAA(uderStarPoint=underStarPoint): lastSAATime = curTime curTime = curTime + jump_time / 86400.0 sat, satVel, orbitDataId = locateSat1( time=curTime, OrbitData=self.orbitDat, startId=orbitDataId ) # sat, satVel, orbitDataId = locateSat1( # time=curTime, OrbitData=self.orbitDat, startId=orbitDataId # ) sat = np.array([satOrbit_interp[0](curTime), satOrbit_interp[1]( curTime), satOrbit_interp[2](curTime)]) # print(sat-sat_i) sun_front_time = 0 # 1 orbit, 一轨结束前剩下的阳照时间(单位是天) sun_back_time = 0 # 1 orbit, 一轨结束前剩下的阴影时间(单位是天) Loading Loading @@ -225,7 +260,10 @@ class SurveySim(object): self.shadowTime = obscure_constraint.aquireShadowTime( curTime=curTime, orbitDat=self.orbitDat, ephlib=self.eph ) underStarPoint = _utils.getSatSubpoint(sat, curTime) # underStarPoint = _utils.getSatSubpoint(sat, curTime) underStarPoint = np.array([subPoint_interp[0]( curTime), subPoint_interp[1](curTime)]) # print(underStarPoint - underStarPoint1) if sat[0] == 0.0 and sat[1] == 0.0 and sat[2] == 0.0: # outputresult[0] = -1; Loading Loading @@ -327,9 +365,12 @@ class SurveySim(object): self.local_fail_out[0] += 1.0 continue ttsat, _, _ = locateSat1( time=timeAfterTrans, OrbitData=self.orbitDat, startId=orbitDataId ) # ttsat, _, _ = locateSat1( # time=timeAfterTrans, OrbitData=self.orbitDat, startId=orbitDataId # ) ttsat = np.array([satOrbit_interp[0](timeAfterTrans), satOrbit_interp[1]( timeAfterTrans), satOrbit_interp[2](timeAfterTrans)]) # print(ttsat-ttsat_i) # sat_eq_coord_tt = csstSkyCoordGeocentricEquator( # coorEquator=ttsat, curJdTime=timeAfterTrans # ) Loading Loading @@ -385,16 +426,22 @@ class SurveySim(object): self.local_fail_out[6] += 1.0 continue ttSatE, _, _ = locateSat1( time=exEndTime, OrbitData=self.orbitDat, startId=orbitDataId ) # ttSatE, _, _ = locateSat1( # time=exEndTime, OrbitData=self.orbitDat, startId=orbitDataId # ) ttSatE = np.array([satOrbit_interp[0](exEndTime), satOrbit_interp[1]( exEndTime), satOrbit_interp[2](exEndTime)]) # print(ttSatE-ttSatE_i) # sat_eq_coord_tt_end = csstSkyCoordGeocentricEquator( # coorEquator=ttSatE, curJdTime=exEndTime # ) # sat_ecl_car_tt_end, _, _ = ( # sat_eq_coord_tt_end.getGeocentricTrueEcliptic() # ) unSPoint = _utils.getSatSubpoint(satPos=ttSatE, t=exEndTime) # unSPoint = _utils.getSatSubpoint(satPos=ttSatE, t=exEndTime) unSPoint = np.array([subPoint_interp[0](exEndTime), subPoint_interp[1]( exEndTime)]) # print(unSPoint - unSPoint1) if saa_constraint.IsInSAA(uderStarPoint=unSPoint) == 1: self.local_fail_out[3] += 1.0 continue Loading Loading @@ -527,9 +574,12 @@ class SurveySim(object): self.local_fail_out[0] += 1.0 continue ttsat, _, _ = locateSat1( time=timeAfterTrans, OrbitData=self.orbitDat, startId=orbitDataId ) # ttsat, _, _ = locateSat1( # time=timeAfterTrans, OrbitData=self.orbitDat, startId=orbitDataId # ) ttsat = np.array([satOrbit_interp[0](timeAfterTrans), satOrbit_interp[1]( timeAfterTrans), satOrbit_interp[2](timeAfterTrans)]) # print(ttsat-ttsat_i) # sat_eq_coord_tt = csstSkyCoordGeocentricEquator( # coorEquator=ttsat, curJdTime=timeAfterTrans # ) Loading Loading @@ -581,16 +631,22 @@ class SurveySim(object): self.local_fail_out[5] += 1.0 continue ttSatE, _, _ = locateSat1( time=exEndTime, OrbitData=self.orbitDat, startId=orbitDataId ) # ttSatE, _, _ = locateSat1( # time=exEndTime, OrbitData=self.orbitDat, startId=orbitDataId # ) ttSatE = np.array([satOrbit_interp[0](exEndTime), satOrbit_interp[1]( exEndTime), satOrbit_interp[2](exEndTime)]) # print(ttSatE-ttSatE_i) # sat_eq_coord_tt_end = csstSkyCoordGeocentricEquator( # coorEquator=ttSatE, curJdTime=exEndTime # ) # sat_ecl_car_tt_end, _, _ = ( # sat_eq_coord_tt_end.getGeocentricTrueEcliptic() # ) unSPoint = _utils.getSatSubpoint(satPos=ttSatE, t=exEndTime) # unSPoint = _utils.getSatSubpoint(satPos=ttSatE, t=exEndTime) unSPoint = np.array([subPoint_interp[0](exEndTime), subPoint_interp[1]( exEndTime)]) # print(unSPoint - unSPoint1) if saa_constraint.IsInSAA(uderStarPoint=unSPoint) == 1: self.local_fail_out[3] += 1.0 continue Loading Loading @@ -1056,4 +1112,8 @@ class SurveySim(object): ss = SurveySim(time_start=2459768, time_end=2459775.0, bettery_level=97200., cmgCons=None, dir="/Users/zhangxin/Work/SurveyPlan/CSST_Survey", logName="MSC_survey_20241108_log", outFn="MSC_survey_20241108_log_outInfo") t1 = time.time() tt = ss.do_observe_plan(jump_time=300) t2 = time.time() print("ust time %f minute" % ((t1-t2)/60)) survey_sim_test.py +20 −26 Original line number Diff line number Diff line Loading @@ -28,7 +28,9 @@ ephLib = importEphemerisLib() sCons = surveyConstraint() rdTime = 2459989.5208 orbitDat = loadSatOrbitDat(datDir=pkg_resources.files("survey_sim.satOrbit.data").joinpath("orbit20160925/")) orbitDat = loadSatOrbitDat(datDir=pkg_resources.files( "survey_sim.satOrbit.data").joinpath("orbit20160925/")) def testLoadSatSunMoon(): rdTime = 2459989.5208 Loading @@ -40,7 +42,8 @@ def testLoadSatSunMoon(): satPos, satVel, _ = locateSat(time=rdTime, OrbitData=orbitDat) print("sat position:", satPos) testLoadSatSunMoon() # testLoadSatSunMoon() def testConstraints(): point = np.array([0, 0, 1]) Loading @@ -51,9 +54,11 @@ def testConstraints(): # orbitDat = loadSatOrbitDat() satPos, satVel, _ = locateSat(time=rdTime, OrbitData=orbitDat) sunCons = obscure_constraint.isObscureBySun(sun=sunPos, p=point, constr=sCons) sunCons = obscure_constraint.isObscureBySun( sun=sunPos, p=point, constr=sCons) print('sunCons:', sunCons) moonCons = obscure_constraint.IsObscureByMoon(moon=mPos, p=point, constr=sCons) moonCons = obscure_constraint.IsObscureByMoon( moon=mPos, p=point, constr=sCons) print('moonCons:', moonCons) earthCons = obscure_constraint.IsObscureByEarth( sat=satPos, sun=sunPos, p=point, constr=sCons Loading @@ -65,13 +70,13 @@ def testConstraints(): saaCons = saa_constraint.IsInSAA(uderStarPoint=sat_subPoint) print('saaCons:', saaCons) testConstraints() # testConstraints() def testTimsSequence(): from survey_sim.surveyTools import aquireTargetObsTime rdTime = 2459989.5208 rdTime_e = 2459990.5208 rdTime = 2461311.5 rdTime_e = 2461312.5 obsTimeSegList = aquireTargetObsTime.aquireTargetObsTime( stTime=rdTime, endTime=rdTime_e, pointting=[40, -60], searchInterval=60, Loading @@ -79,7 +84,8 @@ def testTimsSequence(): ) print('obsTimeSegList:', obsTimeSegList) testTimsSequence() # testTimsSequence() def testBetaAngle(): from survey_sim.constraints import beta_time_constraint Loading @@ -96,23 +102,11 @@ def testBetaAngle(): surveyCosntraint=sCons, ) print('betaTime_segs:', betaTime_segs) # testBetaAngle() betaCons = beta_time_constraint.beta_time_constraint( # startTime=orbitDat[0, 0], # endTime=orbitDat[0, 0] + 365.25 * 10, startTime=rdTime - 0.001, endTime=rdTime + 0.001, orbitData=orbitDat, ephLib=ephLib, surveyCosntraint=sCons, ) beta_time=betaCons.get_beta_time() print('beta_time:', beta_time) survey_time_seg=betaCons.get_survey_time_segment_MSC() survey_time_seg = beta_time_constraint.get_survey_time_segment_MSC() print('survey_time_seg:', survey_time_seg) # testBetaAngle() # betaTime_segs = beta_time_constraint.get_beta_time( # startTime=orbitDat[0, 0], # endTime=orbitDat[0, 0] + 365.25 * 10, Loading Loading
survey_sim/satOrbit/locate_sat.py +4 −2 Original line number Diff line number Diff line Loading @@ -121,7 +121,7 @@ def locateSat(time=2459766.0, OrbitData=None, startId=0, orbDataLen=-1): @jit def locateSat1(time=2459766.0, OrbitData=None, startId=0, orbDataLen=-1): def locateSat1(time=2459766.0, OrbitData=None, startId=0, orbDataLen=-1, calVelFlag=True): if orbDataLen <= 0 and OrbitData is not None: orbDataLen = len(OrbitData) Loading @@ -139,7 +139,9 @@ def locateSat1(time=2459766.0, OrbitData=None, startId=0, orbDataLen=-1): t_ratio = (time - t1) / (t2 - t1) satPos = slerp(OrbitData[i, 1:4], OrbitData[i + 1, 1:4], t_ratio) satVel = slerp(OrbitData[i, 4:7], OrbitData[i + 1, 4:7], t_ratio) if calVelFlag: satVel = slerp(OrbitData[i, 4:7], OrbitData[i + 1, 4:7], t_ratio) nextSid = i break Loading
survey_sim/strategies/SurveySim_MSC.py +85 −25 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ Author: Zhang Xin zhangx@bao.ac.cn Date: 2024-09-19 15:53:27 LastEditors: Zhang Xin zhangx@bao.ac.cn LastEditTime: 2024-11-15 15:46:30 LastEditTime: 2024-12-10 21:31:50 FilePath: /CSST_Survey/survey_sim/strategies/SurveySim_MSC.py Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE ''' Loading Loading @@ -31,6 +31,7 @@ import time import os import pickle from scipy import interpolate import numpy as np import jax.numpy as jnp Loading Loading @@ -111,17 +112,40 @@ class SurveySim(object): jump_time = jump_time pNum = 0 for start_end_t in self.betaCons.MSC_time: sec_times = np.arange( start_end_t[0]-0.001, start_end_t[1]+0.001, 5/86400.) len_sat_array = len(sec_times) sat_info_sec = np.zeros([len_sat_array, 5]) for tmp_i, temp_t in enumerate(sec_times): sat_info_sec[tmp_i, 0:3], _, orbitDataId = locateSat1( time=temp_t, OrbitData=self.orbitDat, startId=orbitDataId, calVelFlag=False ) sat_info_sec[tmp_i, 3:] = _utils.getSatSubpoint( sat_info_sec[tmp_i, 0:3], temp_t) orbitDataId = 0 sat_xi = interpolate.interp1d( sec_times, sat_info_sec[:, 0], kind="linear") sat_yi = interpolate.interp1d( sec_times, sat_info_sec[:, 1], kind="linear") sat_zi = interpolate.interp1d( sec_times, sat_info_sec[:, 2], kind="linear") subPoint_xi = interpolate.interp1d( sec_times, sat_info_sec[:, 3], kind="linear") subPoint_yi = interpolate.interp1d( sec_times, sat_info_sec[:, 4], kind="linear") curTime = start_end_t[0] while curTime <= start_end_t[1]: print("Time:", curTime) curTime, obsTime, curPSky, sun, moon, sat, satV, orbitDataId, _ = self.searchOnePointing( curTime=curTime, curPSky=curPSky, orbitDataId=orbitDataId, jump_time=jump_time, endTime=start_end_t[1]) curTime=curTime, curPSky=curPSky, orbitDataId=orbitDataId, jump_time=jump_time, endTime=start_end_t[1], satOrbit_interp=[sat_xi, sat_yi, sat_zi], subPoint_interp=[subPoint_xi, subPoint_yi]) if sun is not None: print("obsTime-------------------:", obsTime) self.outInfo.outInfo_add_obj(jdTime=obsTime, p_lon_ecl=curPSky.ecl_lon, p_lat_ecl=curPSky.ecl_lat, p_ra=curPSky.ra, p_dec=curPSky.dec, sun=sun, moon=moon, sat=sat, sat_vel=satV, isInDeep=curPSky.inDeepFlag) pNum = pNum + 1 if pNum > 1: if pNum > 20: break # 搜索一个是否满足的节点 Loading @@ -136,6 +160,8 @@ class SurveySim(object): orbitDataId=0, jump_time=60, endTime=2460766.0, satOrbit_interp=None, subPoint_interp=None ): final_min_value = MAX_VALUE Loading @@ -152,9 +178,12 @@ class SurveySim(object): curTime=curTime, orbitDat=self.orbitDat, ephlib=self.eph ) sat, satVel, orbitDataId = locateSat1( time=curTime, OrbitData=self.orbitDat, startId=orbitDataId ) # sat, satVel, orbitDataId = locateSat1( # time=curTime, OrbitData=self.orbitDat, startId=orbitDataId # ) sat = np.array([satOrbit_interp[0](curTime), satOrbit_interp[1]( curTime), satOrbit_interp[2](curTime)]) # print(sat-sat_i) # sat1, satVel1, orbitDataId = locateSat1( # time=curTime, OrbitData=self.orbitDat, startId=orbitDataId-10 # ) Loading @@ -171,14 +200,20 @@ class SurveySim(object): lastPointing = [curPSky.ecl_lon, curPSky.ecl_lat] lastPointingCar = [curPSky.x, curPSky.y, curPSky.z] underStarPoint = _utils.getSatSubpoint(sat, curTime) # underStarPoint = _utils.getSatSubpoint(sat, curTime) underStarPoint = np.array([subPoint_interp[0]( curTime), subPoint_interp[1](curTime)]) # print(underStarPoint - underStarPoint1) battery_q = self.bettery_level while saa_constraint.IsInSAA(uderStarPoint=underStarPoint): lastSAATime = curTime curTime = curTime + jump_time / 86400.0 sat, satVel, orbitDataId = locateSat1( time=curTime, OrbitData=self.orbitDat, startId=orbitDataId ) # sat, satVel, orbitDataId = locateSat1( # time=curTime, OrbitData=self.orbitDat, startId=orbitDataId # ) sat = np.array([satOrbit_interp[0](curTime), satOrbit_interp[1]( curTime), satOrbit_interp[2](curTime)]) # print(sat-sat_i) sun_front_time = 0 # 1 orbit, 一轨结束前剩下的阳照时间(单位是天) sun_back_time = 0 # 1 orbit, 一轨结束前剩下的阴影时间(单位是天) Loading Loading @@ -225,7 +260,10 @@ class SurveySim(object): self.shadowTime = obscure_constraint.aquireShadowTime( curTime=curTime, orbitDat=self.orbitDat, ephlib=self.eph ) underStarPoint = _utils.getSatSubpoint(sat, curTime) # underStarPoint = _utils.getSatSubpoint(sat, curTime) underStarPoint = np.array([subPoint_interp[0]( curTime), subPoint_interp[1](curTime)]) # print(underStarPoint - underStarPoint1) if sat[0] == 0.0 and sat[1] == 0.0 and sat[2] == 0.0: # outputresult[0] = -1; Loading Loading @@ -327,9 +365,12 @@ class SurveySim(object): self.local_fail_out[0] += 1.0 continue ttsat, _, _ = locateSat1( time=timeAfterTrans, OrbitData=self.orbitDat, startId=orbitDataId ) # ttsat, _, _ = locateSat1( # time=timeAfterTrans, OrbitData=self.orbitDat, startId=orbitDataId # ) ttsat = np.array([satOrbit_interp[0](timeAfterTrans), satOrbit_interp[1]( timeAfterTrans), satOrbit_interp[2](timeAfterTrans)]) # print(ttsat-ttsat_i) # sat_eq_coord_tt = csstSkyCoordGeocentricEquator( # coorEquator=ttsat, curJdTime=timeAfterTrans # ) Loading Loading @@ -385,16 +426,22 @@ class SurveySim(object): self.local_fail_out[6] += 1.0 continue ttSatE, _, _ = locateSat1( time=exEndTime, OrbitData=self.orbitDat, startId=orbitDataId ) # ttSatE, _, _ = locateSat1( # time=exEndTime, OrbitData=self.orbitDat, startId=orbitDataId # ) ttSatE = np.array([satOrbit_interp[0](exEndTime), satOrbit_interp[1]( exEndTime), satOrbit_interp[2](exEndTime)]) # print(ttSatE-ttSatE_i) # sat_eq_coord_tt_end = csstSkyCoordGeocentricEquator( # coorEquator=ttSatE, curJdTime=exEndTime # ) # sat_ecl_car_tt_end, _, _ = ( # sat_eq_coord_tt_end.getGeocentricTrueEcliptic() # ) unSPoint = _utils.getSatSubpoint(satPos=ttSatE, t=exEndTime) # unSPoint = _utils.getSatSubpoint(satPos=ttSatE, t=exEndTime) unSPoint = np.array([subPoint_interp[0](exEndTime), subPoint_interp[1]( exEndTime)]) # print(unSPoint - unSPoint1) if saa_constraint.IsInSAA(uderStarPoint=unSPoint) == 1: self.local_fail_out[3] += 1.0 continue Loading Loading @@ -527,9 +574,12 @@ class SurveySim(object): self.local_fail_out[0] += 1.0 continue ttsat, _, _ = locateSat1( time=timeAfterTrans, OrbitData=self.orbitDat, startId=orbitDataId ) # ttsat, _, _ = locateSat1( # time=timeAfterTrans, OrbitData=self.orbitDat, startId=orbitDataId # ) ttsat = np.array([satOrbit_interp[0](timeAfterTrans), satOrbit_interp[1]( timeAfterTrans), satOrbit_interp[2](timeAfterTrans)]) # print(ttsat-ttsat_i) # sat_eq_coord_tt = csstSkyCoordGeocentricEquator( # coorEquator=ttsat, curJdTime=timeAfterTrans # ) Loading Loading @@ -581,16 +631,22 @@ class SurveySim(object): self.local_fail_out[5] += 1.0 continue ttSatE, _, _ = locateSat1( time=exEndTime, OrbitData=self.orbitDat, startId=orbitDataId ) # ttSatE, _, _ = locateSat1( # time=exEndTime, OrbitData=self.orbitDat, startId=orbitDataId # ) ttSatE = np.array([satOrbit_interp[0](exEndTime), satOrbit_interp[1]( exEndTime), satOrbit_interp[2](exEndTime)]) # print(ttSatE-ttSatE_i) # sat_eq_coord_tt_end = csstSkyCoordGeocentricEquator( # coorEquator=ttSatE, curJdTime=exEndTime # ) # sat_ecl_car_tt_end, _, _ = ( # sat_eq_coord_tt_end.getGeocentricTrueEcliptic() # ) unSPoint = _utils.getSatSubpoint(satPos=ttSatE, t=exEndTime) # unSPoint = _utils.getSatSubpoint(satPos=ttSatE, t=exEndTime) unSPoint = np.array([subPoint_interp[0](exEndTime), subPoint_interp[1]( exEndTime)]) # print(unSPoint - unSPoint1) if saa_constraint.IsInSAA(uderStarPoint=unSPoint) == 1: self.local_fail_out[3] += 1.0 continue Loading Loading @@ -1056,4 +1112,8 @@ class SurveySim(object): ss = SurveySim(time_start=2459768, time_end=2459775.0, bettery_level=97200., cmgCons=None, dir="/Users/zhangxin/Work/SurveyPlan/CSST_Survey", logName="MSC_survey_20241108_log", outFn="MSC_survey_20241108_log_outInfo") t1 = time.time() tt = ss.do_observe_plan(jump_time=300) t2 = time.time() print("ust time %f minute" % ((t1-t2)/60))
survey_sim_test.py +20 −26 Original line number Diff line number Diff line Loading @@ -28,7 +28,9 @@ ephLib = importEphemerisLib() sCons = surveyConstraint() rdTime = 2459989.5208 orbitDat = loadSatOrbitDat(datDir=pkg_resources.files("survey_sim.satOrbit.data").joinpath("orbit20160925/")) orbitDat = loadSatOrbitDat(datDir=pkg_resources.files( "survey_sim.satOrbit.data").joinpath("orbit20160925/")) def testLoadSatSunMoon(): rdTime = 2459989.5208 Loading @@ -40,7 +42,8 @@ def testLoadSatSunMoon(): satPos, satVel, _ = locateSat(time=rdTime, OrbitData=orbitDat) print("sat position:", satPos) testLoadSatSunMoon() # testLoadSatSunMoon() def testConstraints(): point = np.array([0, 0, 1]) Loading @@ -51,9 +54,11 @@ def testConstraints(): # orbitDat = loadSatOrbitDat() satPos, satVel, _ = locateSat(time=rdTime, OrbitData=orbitDat) sunCons = obscure_constraint.isObscureBySun(sun=sunPos, p=point, constr=sCons) sunCons = obscure_constraint.isObscureBySun( sun=sunPos, p=point, constr=sCons) print('sunCons:', sunCons) moonCons = obscure_constraint.IsObscureByMoon(moon=mPos, p=point, constr=sCons) moonCons = obscure_constraint.IsObscureByMoon( moon=mPos, p=point, constr=sCons) print('moonCons:', moonCons) earthCons = obscure_constraint.IsObscureByEarth( sat=satPos, sun=sunPos, p=point, constr=sCons Loading @@ -65,13 +70,13 @@ def testConstraints(): saaCons = saa_constraint.IsInSAA(uderStarPoint=sat_subPoint) print('saaCons:', saaCons) testConstraints() # testConstraints() def testTimsSequence(): from survey_sim.surveyTools import aquireTargetObsTime rdTime = 2459989.5208 rdTime_e = 2459990.5208 rdTime = 2461311.5 rdTime_e = 2461312.5 obsTimeSegList = aquireTargetObsTime.aquireTargetObsTime( stTime=rdTime, endTime=rdTime_e, pointting=[40, -60], searchInterval=60, Loading @@ -79,7 +84,8 @@ def testTimsSequence(): ) print('obsTimeSegList:', obsTimeSegList) testTimsSequence() # testTimsSequence() def testBetaAngle(): from survey_sim.constraints import beta_time_constraint Loading @@ -96,23 +102,11 @@ def testBetaAngle(): surveyCosntraint=sCons, ) print('betaTime_segs:', betaTime_segs) # testBetaAngle() betaCons = beta_time_constraint.beta_time_constraint( # startTime=orbitDat[0, 0], # endTime=orbitDat[0, 0] + 365.25 * 10, startTime=rdTime - 0.001, endTime=rdTime + 0.001, orbitData=orbitDat, ephLib=ephLib, surveyCosntraint=sCons, ) beta_time=betaCons.get_beta_time() print('beta_time:', beta_time) survey_time_seg=betaCons.get_survey_time_segment_MSC() survey_time_seg = beta_time_constraint.get_survey_time_segment_MSC() print('survey_time_seg:', survey_time_seg) # testBetaAngle() # betaTime_segs = beta_time_constraint.get_beta_time( # startTime=orbitDat[0, 0], # endTime=orbitDat[0, 0] + 365.25 * 10, Loading