Change Log#
All notable changes to this project will be documented here.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased#
Release 1.2.1 - 2025/11/03#
Fixed#
Fix Numpy 1.x invalid boolean type (!68).
Release 1.2.0 - 2025/08/02#
Added#
Add Mario D’Amore as new contributor 👏 (!63).
New
traj.fovs.npts = 25setter to change the number of points in the FOV contour (!63).New
traj.fovs.npts = (n, m)to get irregular points distribution inRECTANGULARandPOLYGONFOV contours (!63).New
traj.fovs.limb_contoursetter to disable the pixels at the limb and represent only the ground pixels in the FOV footprint (!63).New
traj.fovs.[surface|limb]andtraj.fovs.[surface|limb]_[any|all]properties toFovsCollectionobjects (!63).Add support for Comets and Asteroids in
SpiceBody(!63).Add
SpiceRefRegexmethod to improveSpiceRefvalidation with regular expressions (!63).Add csv OPL syntax to the default
read_events()method (!66)Add new keys (
start_time,end_time) forEventWindow()definition (!66)Add explicit support for Python
3.13and test in CI (!65).
Changed#
intersect_pt(),boresight_pt()andfov_pts()in theplanetary_coverage.spice.toolboxnow returns a 4D vector with an explicit surface intersection flag (!63).Replace SWH reference by DOI identifier (!67).
Bump poetry lock dependencies (!63).
Bump repo year to 2025 (!63).
Change
EnVisiontoENVISIONfor the kernels folder location in the docs (!63).EVF parser rows are no longer sorted by times but remain in the same order as in the file (!64)
Update Juice SOC Gitlab links to ESA Gitlab (!65).
Upgrade pyproject to Poetry
2.x(!65).Bumpy numpy (
>=1.26), matplotlib (>=3.10) and pillow (>=11) min dependencies (!65).Bumpy Sphinx (
>=8) min dependencies (!65).Remove caret requirement on all dependencies (!65).
Update
bumpversionconfiguration to support dates bumps (!65).Removed translation slug (
/en/) in docs url (!65).Release notes and tag are now added during CI on version bump (!65).
Documentation is now tested and deployed to Gitlab Pages during merge requests (!65).
Read The Docs deployment on merge requests is now optional (!65).
Update codemeta to schema v3 (!67).
Fixed#
Previously, if any point in the FOV was on the limb, the whole FOV was not represented when
traj.fovs.limbwasFalse, now all the points on the surface will be represented (!63).Fix
SpiceInstrumentwith invalid NAIF id references (!66)Fix ITL reader with explicit milliseconds in datetime (!66)
Fix CSV reader with an uncommented header (!66)
Improve string formatting with new version of
ruff(!63).Fix EVF parser on consecutive block (!64)
Fix download SSL certificate error in python 3.13 (!65)
Fix explicit
zip(..., strict=False)to follow B905 rule (!65)Fix new CNRS logo (!65)
Fix depreciation tests on stripped
__doc__in python3.13(!65)Fix CodeMeta download URL and published date (!65)
Deprecated#
FovsCollection.limbparameter is depreciated in favor ofFovsCollection.limb_contour(!63).
Removed#
Release 1.1.1 - 2024/10/23#
Added#
Changed#
Rename exceptions
MissingKernelandMissingKernelsRemoteasMissingKernelErrorandMissingKernelsRemoteError(!60).Bump
spiceypydependency to6.0(!59).Switch linter to Ruff and reformat the all the codebase with it (!60).
Make Python
3.11the default version for CI testing (!60).Bump
esa-ptrversion to1.4(!60).Bump
Poetrymin version to1.8(!60).Bump
pytestdependency to8.xintestgroup (!60).Bump
Sphinxdependency to7.xandJupyterLabto4.xindocsgroup (!60).Update ReadTheDocs setup configuration (!60).
Fixed#
Removed#
Release 1.1.0 - 2023/09/01#
Added#
The package is now available on
conda-forge(!48).Add
as_dict=Trueoptional inEventsfind()/before()/after()/between()methods to enforceEventsDicttype return (!50).New
.phasesand.timelineevents properties toTourConfigobject when a compatiblefkevents is loaded in the pool (!53).Allow events based trajectory from
TourConfigobject when an missionfkevent kernel is loaded (!53).Use mission
fkevents to retrieve theTourConfigflybys names and trajectories (!53).Wildcard string (
*) and character (%) are now supported inSpicePoolquery (!53).Allow
ax.scatter()plot on trajectory objects (!54).New
ax.set_view()to projection map to zoom on a given area (!54).New
utc_range(),utc_ranges()andutc_range()functions (!54).New
dist()math function to compte the distane between two vectors (!54).New
au_ticksto represent long distance plots (!54).TourConfig/MetaKernel/SpicePoolnow supported~tilde character as user home directory (!55).New
n_threadskeyword onMetaKernelobject to change the number of parallel download threads (!55).New
Trajectory.new_traj(spacecraft=..., instrument=..., target=...)to changetarget/spacecraft/instrumentparameters and create a newTrajectoryobject (!56).New
TourConfig.new_tour(spacecraft=..., instrument=..., target=...)to changetarget/spacecraft/instrumentparameters and create a newTourConfigobject (!56).Add
Trajectory.target_size,Trajectory.quaternionsproperties andTrajectory.distance_to(),Trajectory.ets_at(),Trajectory.utc_at(),Trajectory.angular_size(),Trajectory.angle_between(),Trajectory.station_azel()andTrajectory.target_separation()methods (!56).Add
azel()(azimuth/elevation),target_position(),angular_size()andstatation_azel(),quaternions()andtarget_separation()methods to the SPICE toolbox (!56).New
jd()decimal Julian Date function to the SPICE datetime module (!56).Add
SpiceFramereference object for SPICE frames (!56).Add
.summaryand.detailsproperties and HTML representation toSpicePoolandMetaKernelobjects (!56).Add
.gaps()method toTourConfigandSpicePoolto extract coverage gaps intervals (!56).Add
.brief()method toSpicePoolsimilar to NAIFbriefutility (!56).Add
hash()method toSpiceRefobjects (!56).New
file_size()miscalenious helper to compute file(s) size (!56).
Changed#
SpicePool.windows()now returns the kernels temporal windows in adictto keep track of the references and the kernels (!56).SpicePool.coverage()is now computed per references and not globally to be consistent with NAIFbriefutility (!56).Trajectory.attitudenow returns the C-matrix and not the transpose of the C-matrix (!56).Change of target or observer in a
Trajectoryobject now clear its cache properties (!56).SpiceBody,SpiceSpacecraftandSpiceInstrumentnow returns aSpiceFrameinstead of astr(!56).Flybyare now defined with analt_minthreshold of 150,000 km by default, instead of 25,000 km previously (!53).New
ax.set_xlim()andax.set_ylim()now rescale the ticks grid (!54).km_ticksnow supports a larger number of digits before using exposant notation (!54).Upgrade JUICE documentation examples to CReMA 5.1 (150lb 23.1, v422) trajectory (!53).
Replace Bézier curves control points by regular polygons in equirectangular map projection (!54).
Improve SPICE toolbox computation speed by
+10%on average (!56).Colorize Ganymede and Callisto maps with Björn Jónsson maps (!57).
Update bump2version configuration (!58).
Bump poetry min requirement to 1.4 (!58).
Fixed#
groundtrack_velocity()formula was incorrect previously and is now fixed (!56).Offset Jupiter map by
180°to be consistent with the other planning tools (!49).EventsDictinput with duplicated keys (!50).Fallback ESA metakernel local cache (with a warning message) when the user is offline or if ESA API is not available (!51).
Single
Eventobject now supports singletimekeyword input (!53).PATH_VALUEStest values with more than 80 characters (!51).SpicePoolitem getter can now have more than 1,000 elements (!53).ESA API tag with short name now return the latest tag when multiple tag were available (!53).
TourConfignow raises an error if the stop time provided is before the start time in a slice (!54).TourConfignow supports numpy array input (!54).anglecalculation can now handle null-vector calculations (!54).ax.text()is now correctly projected on the map an clipped by default if outside the area of interest (!54).Disable default multi-threads download on Windows system (!55).
MetaKernelescape\character is now supported in Windows content (!55).SpiceInstrumentcan now be queried fromSpiceSpacecraft.instr()with their full name (!56).Fix
ax.twin_colorbar()issue with ticks outside the viewing window (!56).Post migration minor fixes (!47).
Deprecated#
Removed#
SPICE
limb_ip_pt()method was removed in favor of SPICE nativetangptmethod (!56).Unnamed
ROIno longer have a default'Unnamed'value (!54).Remove
__getitem()__method toMaskedTrajectoryandSegmentedTrajectoryobjects (!56).Drop support for Python 3.8 following NEP29. Default min version 3.9 (!52).
Remove announcement on the homepage (!58).
Release 1.0.0 - 2022/12/21#
Added#
TourConfignow supports.envfile to locate the mission kernels directories (!45).New
print_kernels_dir()function to print the kernels directories available (!45).New IPython/Jupyter
%load_ext planetary_coveragemagic function (!45).TourConfig,TrajectoryandMetaKernelobjects can now be used to load the SPICE pool directly with theload_kernels()method (!41).Event,EventWindow,EventsListandEventsDictobjects can be trimmed with time boundary conditions (!43).Mission orbital files (
.orb) can now be loaded withread_events()(!43).SpiceRefobjects have a new.frameproperty to query the associated reference frame when available (!42).New
planetographic()andocentric2ographic()helper function to compute planetographic coordinates from cartesian and planetocentric coordinates (!44).New west longitude ticks representation (
ax.set_lon_ticks('west')) and secondary axis ticks display (ax.set_lon_ticks(secondary=True)andax.set_lat_ticks(secondary=True)) (!44).Add
MARS,SATURN,ENCELADUS,TITAN,URANUS,NEPTUNE,PLUTOandCHARONplanetary maps (!44).PNG representation of all the planetary maps (!44).
SpiceRefobjects now expose.encode()function (!44).
Changed#
Rename package from
moon-coveragetoplanetary-coverage(!46).Move the documentation from
moon-coverage.univ-nantes.frtodocs.planetary-coverage.org(!46).Move the source code from
juigitlab.esac.esa.int/datalab/moon-coveragetojuigitlab.esac.esa.int/python/planetary-coverage(!46).Move the notebook examples from
juigitlab.esac.esa.int/datalab/moon-coverage-notebookstojuigitlab.esac.esa.int/notebooks/planetary-coverage(!46).ESA Metakernel are now cached in
~/.planetary-coverage(!46).Map.map()no longer support Matplotlib axes input to use build-in projection system (!44).
Fixed#
Removed#
Old depreciations (!46).
Release 0.12.0 - 2022/10/31#
Added#
Migrate package setup configuration to
pyproject.toml(!34).New
read_events()generic events file reader for all ESA mission (.csv/.evf/.itl) files (!36).New
events.EvfEventFilewas introduced to read.evffiles (!35).New
events.ItlEventFilewas introduced to read.itlfiles (!36).New
.add_kernel()method onTourConfigandTrajectoryto append new kernel(s) to the pool (!37).New
kernel-download/mk-downloadcommand line interfaces are available to simplify kernel downloads (#53 and !37).Kernel(s) in
TourConfigcan be appended with pythonset()orgenerator(!37).New
ESA_MKmetakernel collection, shortcuts andMK_IDENTIFIERpattern that are compatible withTourConfig(!39).New support for optional
juiceextra dependencies withesa-ptrmodule (!40).Tests and support on python new version
3.11(!39).
Changed#
TourConfigdefaultmkis no longer related to JUICE CReMA 5.0 and set toNone(!37).SpicePoolcoverage windows are now evaluated per-file and not per-window (!34).Upgrade JUICE documentation examples to CReMA 5.1 (150lb, v400) trajectory (!38).
Local installation and development now requires Poetry >
1.1(!34).Package dependencies were updated and are now unpinned but tracked in
poetry.lock(!34).Move the source files into an isolated
src/folder (!34).Replace docs and examples JUICE events resources from
FTPtoHTTPS(!37).
Fixed#
FovsCollectioncolor getter (#43).Improve
Trajectoryattribute error message inMapdisplay (!31).Downloads in metakernel with duplicated kernels (#51 and !37).
Change test coverage reporting configuration for Gitlab CI (!33).
Kernel data with
=sign in string value and empty assignation can now be parsed withget_data()(!38).pathlib.Pathand+=assignation symbol can be used in kernelformat_data()(!38).Fix ESA metakernels listing in uppercase (#38).
Deprecated#
Removed#
setup.cfg,setup.pyandMANIFEST.inwere removed as part of the Poetry transition (!34).
Release 0.11.0 - 2022/04/21#
Added#
Trajectory segments and ROIs intersections can be exported as a
.json,.csvfiles for the JUICE timeline tool and.evffiles for MAPPS (!20).New
pixel_scaleparameter toInstrumentTrajectoryobjects,ifovproperty toSpiceInstrumentobjects andm_s_ticksticks (!27).ROIsCollectioncan be imported from a.kmland.kmzfiles withKmlROIsCollection(!29).New
JUPITER,MERCURYbasemaps andMAPSregistry (#28 and !22).Add
sorted_datetimes()inmoon_coverage.spicetoolbox (!20).twin_colorbar()now accept custom ticks provided by the user (!27).New datetime formatter into ISO with a trailing
Zand to MAPPS datetime (!20).Pytest and code coverage now are reported in merge-requests (!23).
Changed#
m_pix_ticksis now automatically scaled to takekmvalues as inputs (!27).Performance improvement: ESA metakernels listing is performed only when a given version is provided (!23).
New documentation entry point:
moon-coverage.univ-nantes.frinstead of themoon-coverage.readthedocs.io. The old URL now redirects to the new one (!17).Switch to SPICE N67 toolkit (#17) thanks to spiceypy
5.0.0(!21).Enable multi-core download for the missing kernels in a metakernel (!25).
100% code coverage is required in Gitlab CI to pass the test (!23).
Documentation gallery was updated to fix Bepi metakernel version and EnVision default metakernel (!23 and !25).
ReadTheDocs configuration is now hosted in the project itself and python build version is
3.8(!23).
Fixed#
Instrument SPICE calculation for the local illumination is now performed on the spacecraft frame and not the instrument frame (!26).
Stephan2021ROIsCollectionlatitude and longitude are now centered on their bounding boxes (!15).Spacecraft with a
<SPACE>in their name can now be used with environment variables (!16).Metakernels without explicit remote urls were not raising
MissingKernelsRemoteerror (!24).Datetime parser now supports ISO string with trailing
Z, nativedatetime.datetimeandnumpy.datetime64inputs as well as MAPPS datetime with_separator (!20).Propagate
ROIandROIsCollectionstyles to their patch (!29).ROIsCollectionnow supports point intersection with tuple and list andstrattribute inputs (!29).Update Ganymede default basemap reference (#33).
ESA API requests now load all the results and not only the first 25 (!23).
Reduce ReadTheDocs build time by fetching the kernels from ESA FTP endpoint (!23, !25 and !28).
Removed#
Release 0.10.0 - 2022/01/14#
Added#
MaskedTrajectorycan now be iterated over each of it segments (as aSegmentedSpacecraftTrajectoryandSegmentedInstrumentTrajectory).The
EventsFilecan be filtered by any regex key, support indexing and comparisons with date strings. Auto-completion was also enable for Jupyter and IPython environments (!8).TourConfignow support kernels custom remote location:remote_kernels='https://remote.location.tld/'(!10).New
tickssub-module to enable better axis value representation. It includes a newdate_ticksfor compressed date formatter on temporal axes,m_pix_ticksandkm_pix_ticksfor the instrument pixel scale. It also support basic mathematical operations to scale and offset the values.New
twin_colorbaron projected maps (e.g. for instrument pixel scale on top of the spacecraft altitude).New HTML formatter for displaying tables (with or without header) (!9).
Stephan ROIs now have a bibliographic reference (!13).
Code blocks in the docs now have a
copybutton (only the input code are put in the clipboard, the input prompt and output are discarded).Support for python
3.10, upgrade dependencies versions and fix numpy warnings.The README and the documentation now have details about how to report feedback, contribute to the source code and cite this packages (!14).
Changed#
TourConfigandTrajectoryobjects can take anEventsFile/EventsDictas a direct time inputs.Eventobjects are now represented as HTML tables in Jupyter notebooks (!9).Stephan ROIs default colors were changed to match the one in the paper (!13).
Sphinx documentation theme is now
sphinx-book.Improve CI configuration by disabling some
testsfor merge request in draft mode (with a title starting withDraft:).On January 2022, the University of Nantes was renamed Nantes University and the Laboratoire de Planétologie et Géodynamique was renamed Laboratoire de Planétologie et Géosciences (!12).
JUICE logo was updated (!12).
Fixed#
MaskedTrajectorycan now switch observer and target property (a new trajectory is created with the same mask).Events in
EventsFilecan be selected with a slice now and are now hashable.Trajectory intersection with ROIs now corresponds to the new ROIs keys.
Improve tests performance by closing temporary figures and reducing the number of max points in the trajectory.
DataLabs
OSError: Invalid cross-device linkis now fixed.Metakernel with multiple remotes in their headers is now supported (!11).
Workaround for out-of-range NAIF codes for JUICE PEP instruments (see #12 and !7).
Workaround for documentation
multiple fileswarning (see MyST-NB #363).
Removed#
Examples notebook were moved to the moon-coverage notebooks repository (!10).
All the
.rstfiles in the documentation were removed in favor of.mdandjupytextfiles.Remove all the static output images from the docs (they are created by the
sphinxduring the build process).Drop support for
3.6. Now the default testing python version is3.8.Docker configuration is now hosted in its own repository.
Release 0.9.0 - 2021/09/22#
Added#
New
SpiceAbCorrclass, with key checker and light time/distance corrections.New (meta)kernel parser and data export formatter (with datetime support).
New meta-kernel class (
spice.MetaKernel), with better kernel folder substitution, and custom remote support. It is fully compatible with input value (loaded as an updated temporary file and not as a list of kernels).The kernel value can be loaded directly from the
SpicePoolor from theSpiceRefobjects.If a ESA metakernel is loaded into the pool, its SKD version is available as an attribute
SpicePool.skd_version.Query CReMA SKD version from ESA Cosmos API repository (for the latest version, a specific version or all versions).
Query/download CReMA metakernels from ESA Cosmos API repository (for the latest version, a specific version or all versions)
EsaCremasCollectionthat support version specific metakernel (#5).New
versionargument inTourConfigfor known metakernel available inESA_CREMAS(see #5).TourConfig,Trajectoryandetnow accept heterogenous list of time,slice,listandtuple. The results is always a flat array.The
TourConfigandTrajectoryare now hashable (based on their required kernels). This value is compared with the SpicePool already load to avoid to purge the Pool if the kernels content did not changed. It also support@check_kernelsdecorator to ensure that the calculation is performed on the right set of kernel if multipleTourConfig/Trajectoryare defined. If the kernels in the Pool have changed, the Pool will be purged and reloaded with the right kernels.New
EsaMissionEvents/EsaMissionPhases/EsaMissionTimeline/EventFileparser to load a collection of events from a.csvfile. These events can be used directly withTourConfigto select an event or a temporal window or withTourConfig.flybyto select one or more flybys. They can also be used to filter a trajectory, include and exclude a temporal event window or list of events when the trajectory is initialized or latter on.New
datetimeparser for any SPICE string input.New
timedeltaevent step parser and enable temporal operations onEventandEventWindowobjects.Flybyobject have new viewing angle at CA shortcuts (inc_ca,emi_caandphase_ca).InstrumentTrajectory.fovsproperty now return aFovsCollectionobject that allow to colorize the trajectory properties directly on the projected FOVs. It also works forMaskedInstrumentTrajectoryobjects. An optionalsortargument is also available to sort the FOV footprints by aTrajectoryproperty before being displayed on the map.New standalone colorbar on projected axis.
New
DepreciationHelperto report the function/dict/class replaced that will be discarded in the future.The video of the presentation of the tool at the 5th Planetary Data Workshop (June 2021) was added to the documentation home page.
Changed#
Trajectorynow haveets_target_centerandets_surface_intersectephemeris times. They are computed based on the aberration correction provided and are respectively propagated tolocal_time/illum_anglesandsun_pos/solar_longitude/true_anomalySPICE computations.SPICE aberration correction can be provided at the
TourConfiglevel and is propagated down to theTrajectoryandFlyby. It is also preserved during theobserverand thetargetswitch.When a
Flybyis defined, a newalt_mincan be provided (25,000 km by default). This property is propagated toTourConfigandTrajectoryflybysattribute. Aget_flybys()function was also added with an explicit user-definedalt_min(see docs).MaskedTrajectoryis now based on the observer property (MaskedSpacecraftTrajectory/MaskedInstrumentTrajectory).The Tour Configuration and ESA CReMA documentation now include details about the CReMA versioning.
The default Callisto and Ganymede ROIs collections were updated after the 1st review of K. Stephan et al. 2021 (PSS). Some key were changed, edited or removed. These changes are not yet propagated to the kernels (
juice_roi_v??.[tf|tpc|bsp])The SPICE kernel documentation was reformated to include the new
kernel_parserandformat_datafunctions from thespicesub-module, as well as the newMetaKernelbehavior.Upgrade Europa map with colors (created by Björn Jónsson).
Fixed#
The
tour.flybynow return aInstrumentFlybyif aninstrumentwas provided to theTourConfig.Fix multiline and continuation marker in kernel parser.
SpicePoolcan now be compared with its the kernel pool hash based on the kernels loaded (individually or/and from aMetaKernel).TourConfigkernels content is now versioned based on its hash (see note above).Trajectoryobjects can now have singlenumpy datetime64inputs.EventFileonly send a warning if an event start time is missing.et_ca_rangenow acceptednumpy datetime64input.Kernel parser can now read float with
Dengineering notation.Link to the example notebook viewer in homepage
README.Upgrade Europa map with colors (created by Björn Jónsson).
Open files is now enforce to
utf-8(as a pylint requirement).The
Dockerfileis now build from the source and not from the main branch (useful for merge requests).The required dependencies are now explicitly defined in
setup.pyto ensure a better reproducibility of the results.Duplicate Gitlab pipelines on merge requests.
Removed#
update-juice-cremacli entry points (no longer required).Move esa crema folder from package level to user home
.moon-coverage-esa-cremafolder.autoload_kernelswas removed fromTourConfigattributes. Now the pool is always loaded when atouris created.moon_coverage.kernelssub-module was completely removed in favor of the new variants inmoon_coverage.spice.kernelandmoon_coverage.spice.metakernel.MaskedTrajectorywas removed in flavor ofMaskedSpacecraftTrajectoryandMaskedInstrumentTrajectory.
Deprecated#
CReMACollection,CReMAMetaKernel,JUICE_CReMAandCReMAsno longer works and were replaced byEsaCremasCollection,spice.MetaKernelJUICE_CREMASandESA_CREMASrespectively.debug_esa_cremais replaced bydebug_esa_api.
Release 0.8.0 - 2021/05/18#
Added#
Trajectoryobjects now have a boresight pointingra/dec(J2000) attributes based on theckpointing data, a surface intersect, local illumination conditions and aslantdistance.SpiceFieldOfViewclass withboresight,bounds,shape,frameandraysattributes (with 2D and 3D visualizations).SpiceInstrumentextended fromSpiceViewOfViewas aSpiceRefobject.SpiceSpacecrafthasSpiceInstrumentlist (loaded from the pool with a valid FOV) and aframeandboresightattributes (by default theboresightis set at(0, 0, 1)but can be overridden at runtime, see fix below). Both of them are defined asSpiceObserverinstances.Spice ray intersection on body surface with a single or multiple time(s) or ray(s) and the field of view contour.
The
InstrumentTrajectorycan represent the instrument FOV on the surface directly (with amatplotlib.collections.PathCollection).Compute Spacecraft and instrument clock ticks from UTC time inputs.
Convert vector in
J2000frame toRA/DECcoordinates.New limb impact parameter point calculation (for now only limited to
abcorr='None') and can be used directly with theintersect_ptSPICE helper.New rotation matrix around an axis and vector rejection helpers.
Add a class renamed decoration
DepreciationWarning.A warning was added to the docs to highlight the fact that SPICE calculation are performed with the
abcorr='NONE'flag.New
Ganymedebasemap from Kersten et al. 2021 - PSS (submitted).Add
Kernel management and setupsection on the documentation homepage.The repo is now backup in Software Heritage for long term preservation, the badge was added to the
README.md(CI web-hooked on tagged version).
Changed#
TrajectoryandFlybyare automatically promoted toSpacecraftTrajectory/InstrumentTrajectoryandSpacecraftFlyby/InstrumentFlybyobjects based on the selected observer class.Trajectoryobserver and target can be changed after theTourConfig.TourConfignow have ainstrumentoptional argument that can be use to load directly a specific instrument.SpiceRefon the Sun, a Planet or a Satellite now return aSpiceBodyobject, a spacecraft id will return aSpiceSpacecraftand an instrument will returnSpiceInstrument(promotions).Input type on SPICE toolbox functions can now be checked and automatically converted.
Propagate
labelinPatchandPatchCollectionprojections.Update
moon-coveragelogo for a new isometric and animated version.
Fixed#
SpiceRefwithintinput is now recomputed the bodyname(is also supportSpiceRefinputs).SPICE
Toolboxnow supportNaNinputs.Add a default null label attribute to the
ROIobjects.Add a legend handler to
PatchCollectionobjects.Add legend handles to
Stephan2020ROIsCollectioncategories.Enforce
PEP8naming convention, noprintfunction and import sorting.Manual spacecraft pointing when no instrument kernel is available (see the HGA example in the docs)
Deprecated#
SPICEPoolandSPICERefwere renamed asSpicePoolandSpiceRef.Discard
IAU_*frame attribute fromSPICERefin favor of centeredframeattribute.
Release 0.7.0 - 2021/04/06#
Added#
Trajectory range can now be selected on the full metakernel coverage (see docs).
New
Flybyobject as an advanceTrajectoryobject centered around the CA point with an irregular distribution of temporal points.New background maps for the Earth, the Moon and Venus.
Convertor from
ETfrom and to Barycentric Dynamical Time (TDB).SPICEPool now provide
windowsandcoverageranges for a body or a collection of bodies.TourConfigno longer require to have astartor astoptime (usecoveragefrom the pool minus1 msoverlap).Multi temporal sequence can now be used with
et_ranges.Temporal sequence
et_ca_rangeraround a closest approach, for a flyby trajectory.Add custom temporal
unittoutcconversion (msby default).
Changed#
Most of the main entry from the
esa,maps,rois,spiceandtrajectorysub-module are now accessible directly at the module root level.Convert to
UTCnow always return anumpy.datetime64value.Empty
MaskedTrajectorynow haveNaT(not-a-time) attribute, instead ofNone.Update CReMA list to add
4.2b22.1 (cruise only)in tests.Upgrade tests to
naif0012.tlsleapsecond file.
Fixed#
Map plot on a single couple of values.
Round
ETconverted value at 1e-3 to matchUTCms precision.In some rare cases, the endpoint in
et_rangewas not discarded withendpoint=False.
Deprecated#
TrajectoryConfigwas replace in favor ofTourConfig, it will be discarded on the next major release. For now only a depreciation warning is send to the user.
Release 0.6.3 - 2021/03/29#
Added#
Send a
Warningto the user if the trajectory have more than1,000,000points.GanymedeROIsandCallistoROIsnow have a target attribute by default.MaskedTrajectorynow have opportunitywindows.Basics projection plots unit tests.
Radius shortcuts to
SPICERefobjects.
Changed#
The intersection between a
Trajectoryand aROIor aROIsCollectionnow take into account the target attribute when it is provided.The projection of a
Trajectory, aROIor aROIsCollectionon aMapis only possible if their respective target names are consistent.Enable Trajectory
etsinput asslice.Masked trajectory UTC times are now in
numpy.datetime64notstr.Allow color bar optional output in color line.
ESA CReMA key is now unsensitive to
.and_changes in its keys.
Fixed#
Convert to
ETfromnumpy.datetime64input.Callisto ROI
4_1_02min longitude.
Removed#
ProjTransforminProjAxes(not used).
Release 0.6.2 - 2021/03/23#
Changed#
Docker tests are now perform on the source version (not on the latest published version).
Fixed#
Missing
PatchandCollectiongetter onalpha,linewidth,linestyleandzorderfor theROIandROIsCollection.
Removed#
Use default branch in ReadTheDocs hook (default is latest). This should fix the build on tagged commits.
Release 0.6.1 - 2021/03/23#
Changed#
Line color now supports any keywords arguments to its
LineCollection.Map project
PathPatchandPatchCollectionnow conserve thealpha,linewidth,linestyleandzorderparameters.
Fixed#
Image logos in the README is now pointing to the absolute URL on ReadTheDocs.
Missing
urlattribute for the homepage description inpip.Ignore
RunTimeErrorfrom numpy in equirectangular projection.Gitlab-CI rules for PyPI auto-deploy.
Release 0.6.0 - 2021/03/19#
Added#
Major SPICE calculation helpers (utc datetimes, sub-observer position and speed, local time, solar illumination and viewing angles, sub-solar position, solar zenith angle, local normal vector, true anomaly, seasonal solar longitude and groundtrack velocity). All these function are already fully tested.
The
Trajectorydata can now be represented on the projected map as color lines.Intersection between
TrajectoriesandROIsis now tests and documented.SPICERefobjects now have aparent,radiiandmuproperties.Vector scalar projection and rejection helpers.
UnitFormattercan add a unit to the ticks.A CHANGELOG is now available to track the changes through the past and future versions.
LPG/CNRS/Univ-Nantes/ESA/JUICE logos is the README and the docs.
Console script to update the JUICE CReMA list
update-juice-crema.Docker config to deploy the module on a JupyterLab instance.
Changed#
Vectorized SPICE
reclatand radians to degrees functions.When the kernels directory not found, an explicit
KernelsDirectoryNotFoundErroris throw.The projection (equirectangular for now) can have values attached to their position when converted to
(x, y).Update the notebook and the documentation with examples of SPICE calculation and their representation on the map.
Simplify
TrajectorySPICE mocks.Module upgrade is now explicitly described in the docs.
The LICENSE affiliation header was updated.
The module source-code homepage was moved to ESA JUICE Gitlab instance (used for PyPI and ReadTheDocs).
Bump2version configuration now update the CHANGELOG based on the new version.
Build deploy are only available when env variables are setup.
Deprecated#
The Univ-Nantes source-code homepage. It will be discarded soon.
Fixed#
SPICERefdescription ofIAU_FRAMEas fixed frame (and not as inertial).Inversion between the
targetand theobserverin SPICEspkezrfunction (for stellar aberration corrections).Gitlab CI stages rules and deployment trigger.
PyPI broken link.
Broken
pylintcommand in README.
Release 0.5.0 - 2021/02/16#
Added#
Direct projection of the
Trajectoryon the moons background.Projection in map coordinates before plotting the data and improve
np.ndarraydata projection.Logical operator (
&and^) on theTrajectoryandROIsintersections.Custom logger and debugger with tuneable verbose levels.
Segmentation miscellaneous helper for the trajectory arrays.
Trajectory notebook example to illustration the basic behavior of the module.
Trajectorydocumentation and examples.Logo and favicon are not used in the docs.
The documentation is now deploy on ReadTheDocs and triggered by a hook during the CI.
Changed#
Now the intersection operator between a
Trajectoryand aROI(s) is not a bijection.Regroup all the logger/debugger in a single sub-module.
Rewrite
cache_propertydecorator tu support the logger, parents invalidation and garbage collection.Project status is now in
Beta.The main contact information is now project dependant (not developer dependant).
DataLab URL now points to
esa.int.The module version is now tracked in the
docsas well (with bump2version).SPICE documentation (references, time convertor and time ranger).
Explicit docker build during the CI.
Removed#
Sphinx build on CI (now performed by
ReadTheDocs).
Fixed#
By-pass the key formatting for the
Trajectorypoints in Stephan ROIs.SPICEPoolerror message.Projection tests coverage
Release 0.4.0 - 2021/02/19#
Added#
SPICE
utctoetconvertor on list and arrays.Time ephemeris range with human readable time steps.
A
SPICEPoolhandler can now provide feedback of the kernels loaded in the pool (with a logger).TrajConfighelper will loaded the kernels setup and create theTrajectoryobjects.SPICERefobject can be used to providenameand NAIFidas string and integer.Sub-observer position on any
Trajectory.GeoJsonROIdocumentation and example.
Changed#
Isolate the
JUICE_CReMAfrom theCReMAdefinition.Allow failure on pypi deploy during the CD.
Pytest CI output are now colored.
Release 0.3.0 - 2021/02/04#
Added#
GeoJsonROIobject that behave like regularROIbut loaded from a.geojsonfile (with its properties).Enable projection on polygon with holes.
Miscellaneous helper on list index search from the right.
README now have badges.
README to
setup.py(to be displayed onpypi) as well as project urls.
Changed#
New description of the
pip installmethod.
Fixed#
Twine pypi variable naming error.
Release 0.2.1 - 2021/01/21#
Fixed#
PYPI deploy token variable invalid name.
Force UT-8 encoding in
CReMAloader.
Release 0.2.0 - 2021/01/21#
This module is completely rebuild from the original moon-coverage-tool developed
by R. Robidel in 2019/2020, which latest version is labeled v0.1.1.
Added#
Kernel,MetaKernelsandCReMAobjects to manipulate the kernels files.Mapobject to quickly load the Jovian background maps.Miscellaneous helpers on vector calculations with arrays, haversine distance and great circle calculations.
Add a basic Equirectangular projection with anti-meridian and polar wrapper that works matplotlib on
Pathobject and collections, with planetary coordinates ticks.Region of Interest (
ROI) object and collection now describe interesting area on the moon surface.ROIs collection based on K. Stephan 2020 PSS paper for Callisto and Ganymede are included in the module itself.
Downloader
wgethelper.
Changed#
Module bundled with a full test suite with coverage and sphinx documentation.
Fixed#
False Easting in Equirectangular projection.