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#
Added#
New
CITATION.cff
file (!59).
Changed#
Bump
spiceypy
dependency to6.0
(!59).
Release 1.1.0 - 2023/09/01#
Added#
The package is now available on
conda-forge
(!48).Add
as_dict=True
optional inEvents
find()
/before()
/after()
/between()
methods to enforceEventsDict
type return (!50).New
.phases
and.timeline
events properties toTourConfig
object when a compatiblefk
events is loaded in the pool (!53).Allow events based trajectory from
TourConfig
object when an missionfk
event kernel is loaded (!53).Use mission
fk
events to retrieve theTourConfig
flybys names and trajectories (!53).Wildcard string (
*
) and character (%
) are now supported inSpicePool
query (!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_ticks
to represent long distance plots (!54).TourConfig
/MetaKernel
/SpicePool
now supported~
tilde character as user home directory (!55).New
n_threads
keyword onMetaKernel
object to change the number of parallel download threads (!55).New
Trajectory.new_traj(spacecraft=..., instrument=..., target=...)
to changetarget
/spacecraft
/instrument
parameters and create a newTrajectory
object (!56).New
TourConfig.new_tour(spacecraft=..., instrument=..., target=...)
to changetarget
/spacecraft
/instrument
parameters and create a newTourConfig
object (!56).Add
Trajectory.target_size
,Trajectory.quaternions
properties 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
SpiceFrame
reference object for SPICE frames (!56).Add
.summary
and.details
properties and HTML representation toSpicePool
andMetaKernel
objects (!56).Add
.gaps()
method toTourConfig
andSpicePool
to extract coverage gaps intervals (!56).Add
.brief()
method toSpicePool
similar to NAIFbrief
utility (!56).Add
hash()
method toSpiceRef
objects (!56).New
file_size()
miscalenious helper to compute file(s) size (!56).
Changed#
SpicePool.windows()
now returns the kernels temporal windows in adict
to keep track of the references and the kernels (!56).SpicePool.coverage()
is now computed per references and not globally to be consistent with NAIFbrief
utility (!56).Trajectory.attitude
now returns the C-matrix and not the transpose of the C-matrix (!56).Change of target or observer in a
Trajectory
object now clear its cache properties (!56).SpiceBody
,SpiceSpacecraft
andSpiceInstrument
now returns aSpiceFrame
instead of astr
(!56).Flyby
are now defined with analt_min
threshold 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_ticks
now 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).EventsDict
input 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
Event
object now supports singletime
keyword input (!53).PATH_VALUES
test values with more than 80 characters (!51).SpicePool
item 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).
TourConfig
now raises an error if the stop time provided is before the start time in a slice (!54).TourConfig
now supports numpy array input (!54).angle
calculation 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).
MetaKernel
escape\
character is now supported in Windows content (!55).SpiceInstrument
can 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 nativetangpt
method (!56).Unnamed
ROI
no longer have a default'Unnamed'
value (!54).Remove
__getitem()__
method toMaskedTrajectory
andSegmentedTrajectory
objects (!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#
TourConfig
now supports.env
file 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_coverage
magic function (!45).TourConfig
,Trajectory
andMetaKernel
objects can now be used to load the SPICE pool directly with theload_kernels()
method (!41).Event
,EventWindow
,EventsList
andEventsDict
objects can be trimmed with time boundary conditions (!43).Mission orbital files (
.orb
) can now be loaded withread_events()
(!43).SpiceRef
objects have a new.frame
property 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
,PLUTO
andCHARON
planetary maps (!44).PNG representation of all the planetary maps (!44).
SpiceRef
objects now expose.encode()
function (!44).
Changed#
Rename package from
moon-coverage
toplanetary-coverage
(!46).Move the documentation from
moon-coverage.univ-nantes.fr
todocs.planetary-coverage.org
(!46).Move the source code from
juigitlab.esac.esa.int/datalab/moon-coverage
tojuigitlab.esac.esa.int/python/planetary-coverage
(!46).Move the notebook examples from
juigitlab.esac.esa.int/datalab/moon-coverage-notebooks
tojuigitlab.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.EvfEventFile
was introduced to read.evf
files (!35).New
events.ItlEventFile
was introduced to read.itl
files (!36).New
.add_kernel()
method onTourConfig
andTrajectory
to append new kernel(s) to the pool (!37).New
kernel-download
/mk-download
command line interfaces are available to simplify kernel downloads (#53 and !37).Kernel(s) in
TourConfig
can be appended with pythonset()
orgenerator
(!37).New
ESA_MK
metakernel collection, shortcuts andMK_IDENTIFIER
pattern that are compatible withTourConfig
(!39).New support for optional
juice
extra dependencies withesa-ptr
module (!40).Tests and support on python new version
3.11
(!39).
Changed#
TourConfig
defaultmk
is no longer related to JUICE CReMA 5.0 and set toNone
(!37).SpicePool
coverage 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
FTP
toHTTPS
(!37).
Fixed#
FovsCollection
color getter (#43).Improve
Trajectory
attribute error message inMap
display (!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.Path
and+=
assignation symbol can be used in kernelformat_data()
(!38).Fix ESA metakernels listing in uppercase (#38).
Deprecated#
Removed#
setup.cfg
,setup.py
andMANIFEST.in
were 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
,.csv
files for the JUICE timeline tool and.evf
files for MAPPS (!20).New
pixel_scale
parameter toInstrumentTrajectory
objects,ifov
property toSpiceInstrument
objects andm_s_ticks
ticks (!27).ROIsCollection
can be imported from a.kml
and.kmz
files withKmlROIsCollection
(!29).New
JUPITER
,MERCURY
basemaps andMAPS
registry (#28 and !22).Add
sorted_datetimes()
inmoon_coverage.spice
toolbox (!20).twin_colorbar()
now accept custom ticks provided by the user (!27).New datetime formatter into ISO with a trailing
Z
and to MAPPS datetime (!20).Pytest and code coverage now are reported in merge-requests (!23).
Changed#
m_pix_ticks
is now automatically scaled to takekm
values 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.fr
instead 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).
Stephan2021ROIsCollection
latitude 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
MissingKernelsRemote
error (!24).Datetime parser now supports ISO string with trailing
Z
, nativedatetime.datetime
andnumpy.datetime64
inputs as well as MAPPS datetime with_
separator (!20).Propagate
ROI
andROIsCollection
styles to their patch (!29).ROIsCollection
now supports point intersection with tuple and list andstr
attribute 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#
MaskedTrajectory
can now be iterated over each of it segments (as aSegmentedSpacecraftTrajectory
andSegmentedInstrumentTrajectory
).The
EventsFile
can be filtered by any regex key, support indexing and comparisons with date strings. Auto-completion was also enable for Jupyter and IPython environments (!8).TourConfig
now support kernels custom remote location:remote_kernels='https://remote.location.tld/'
(!10).New
ticks
sub-module to enable better axis value representation. It includes a newdate_ticks
for compressed date formatter on temporal axes,m_pix_ticks
andkm_pix_ticks
for the instrument pixel scale. It also support basic mathematical operations to scale and offset the values.New
twin_colorbar
on 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
copy
button (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#
TourConfig
andTrajectory
objects can take anEventsFile
/EventsDict
as a direct time inputs.Event
objects 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
tests
for 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#
MaskedTrajectory
can now switch observer and target property (a new trajectory is created with the same mask).Events in
EventsFile
can 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 link
is 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 files
warning (see MyST-NB #363).
Removed#
Examples notebook were moved to the moon-coverage notebooks repository (!10).
All the
.rst
files in the documentation were removed in favor of.md
andjupytext
files.Remove all the static output images from the docs (they are created by the
sphinx
during 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
SpiceAbCorr
class, 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
SpicePool
or from theSpiceRef
objects.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)
EsaCremasCollection
that support version specific metakernel (#5).New
version
argument inTourConfig
for known metakernel available inESA_CREMAS
(see #5).TourConfig
,Trajectory
andet
now accept heterogenous list of time,slice
,list
andtuple
. The results is always a flat array.The
TourConfig
andTrajectory
are 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_kernels
decorator to ensure that the calculation is performed on the right set of kernel if multipleTourConfig
/Trajectory
are defined. If the kernels in the Pool have changed, the Pool will be purged and reloaded with the right kernels.New
EsaMissionEvents
/EsaMissionPhases
/EsaMissionTimeline
/EventFile
parser to load a collection of events from a.csv
file. These events can be used directly withTourConfig
to select an event or a temporal window or withTourConfig.flyby
to 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
datetime
parser for any SPICE string input.New
timedelta
event step parser and enable temporal operations onEvent
andEventWindow
objects.Flyby
object have new viewing angle at CA shortcuts (inc_ca
,emi_ca
andphase_ca
).InstrumentTrajectory.fovs
property now return aFovsCollection
object that allow to colorize the trajectory properties directly on the projected FOVs. It also works forMaskedInstrumentTrajectory
objects. An optionalsort
argument is also available to sort the FOV footprints by aTrajectory
property before being displayed on the map.New standalone colorbar on projected axis.
New
DepreciationHelper
to 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#
Trajectory
now haveets_target_center
andets_surface_intersect
ephemeris times. They are computed based on the aberration correction provided and are respectively propagated tolocal_time
/illum_angles
andsun_pos
/solar_longitude
/true_anomaly
SPICE computations.SPICE aberration correction can be provided at the
TourConfig
level and is propagated down to theTrajectory
andFlyby
. It is also preserved during theobserver
and thetarget
switch.When a
Flyby
is defined, a newalt_min
can be provided (25,000 km by default). This property is propagated toTourConfig
andTrajectory
flybys
attribute. Aget_flybys()
function was also added with an explicit user-definedalt_min
(see docs).MaskedTrajectory
is 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_parser
andformat_data
functions from thespice
sub-module, as well as the newMetaKernel
behavior.Upgrade Europa map with colors (created by Björn Jónsson).
Fixed#
The
tour.flyby
now return aInstrumentFlyby
if aninstrument
was provided to theTourConfig
.Fix multiline and continuation marker in kernel parser.
SpicePool
can now be compared with its the kernel pool hash based on the kernels loaded (individually or/and from aMetaKernel
).TourConfig
kernels content is now versioned based on its hash (see note above).Trajectory
objects can now have singlenumpy datetime64
inputs.EventFile
only send a warning if an event start time is missing.et_ca_range
now acceptednumpy datetime64
input.Kernel parser can now read float with
D
engineering 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
Dockerfile
is now build from the source and not from the main branch (useful for merge requests).The required dependencies are now explicitly defined in
setup.py
to ensure a better reproducibility of the results.Duplicate Gitlab pipelines on merge requests.
Removed#
update-juice-crema
cli entry points (no longer required).Move esa crema folder from package level to user home
.moon-coverage-esa-crema
folder.autoload_kernels
was removed fromTourConfig
attributes. Now the pool is always loaded when atour
is created.moon_coverage.kernels
sub-module was completely removed in favor of the new variants inmoon_coverage.spice.kernel
andmoon_coverage.spice.metakernel
.MaskedTrajectory
was removed in flavor ofMaskedSpacecraftTrajectory
andMaskedInstrumentTrajectory
.
Deprecated#
CReMACollection
,CReMAMetaKernel
,JUICE_CReMA
andCReMAs
no longer works and were replaced byEsaCremasCollection
,spice.MetaKernel
JUICE_CREMAS
andESA_CREMAS
respectively.debug_esa_crema
is replaced bydebug_esa_api
.
Release 0.8.0 - 2021/05/18#
Added#
Trajectory
objects now have a boresight pointingra/dec
(J2000) attributes based on theck
pointing data, a surface intersect, local illumination conditions and aslant
distance.SpiceFieldOfView
class withboresight
,bounds
,shape
,frame
andrays
attributes (with 2D and 3D visualizations).SpiceInstrument
extended fromSpiceViewOfView
as aSpiceRef
object.SpiceSpacecraft
hasSpiceInstrument
list (loaded from the pool with a valid FOV) and aframe
andboresight
attributes (by default theboresight
is set at(0, 0, 1)
but can be overridden at runtime, see fix below). Both of them are defined asSpiceObserver
instances.Spice ray intersection on body surface with a single or multiple time(s) or ray(s) and the field of view contour.
The
InstrumentTrajectory
can 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
J2000
frame toRA/DEC
coordinates.New limb impact parameter point calculation (for now only limited to
abcorr='None'
) and can be used directly with theintersect_pt
SPICE 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
Ganymede
basemap from Kersten et al. 2021 - PSS (submitted).Add
Kernel management and setup
section 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#
Trajectory
andFlyby
are automatically promoted toSpacecraftTrajectory
/InstrumentTrajectory
andSpacecraftFlyby
/InstrumentFlyby
objects based on the selected observer class.Trajectory
observer and target can be changed after theTourConfig
.TourConfig
now have ainstrument
optional argument that can be use to load directly a specific instrument.SpiceRef
on the Sun, a Planet or a Satellite now return aSpiceBody
object, a spacecraft id will return aSpiceSpacecraft
and an instrument will returnSpiceInstrument
(promotions).Input type on SPICE toolbox functions can now be checked and automatically converted.
Propagate
label
inPatch
andPatchCollection
projections.Update
moon-coverage
logo for a new isometric and animated version.
Fixed#
SpiceRef
withint
input is now recomputed the bodyname
(is also supportSpiceRef
inputs).SPICE
Toolbox
now supportNaN
inputs.Add a default null label attribute to the
ROI
objects.Add a legend handler to
PatchCollection
objects.Add legend handles to
Stephan2020ROIsCollection
categories.Enforce
PEP8
naming convention, noprint
function and import sorting.Manual spacecraft pointing when no instrument kernel is available (see the HGA example in the docs)
Deprecated#
SPICEPool
andSPICERef
were renamed asSpicePool
andSpiceRef
.Discard
IAU_*
frame attribute fromSPICERef
in favor of centeredframe
attribute.
Release 0.7.0 - 2021/04/06#
Added#
Trajectory range can now be selected on the full metakernel coverage (see docs).
New
Flyby
object as an advanceTrajectory
object centered around the CA point with an irregular distribution of temporal points.New background maps for the Earth, the Moon and Venus.
Convertor from
ET
from and to Barycentric Dynamical Time (TDB
).SPICEPool now provide
windows
andcoverage
ranges for a body or a collection of bodies.TourConfig
no longer require to have astart
or astop
time (usecoverage
from the pool minus1 ms
overlap).Multi temporal sequence can now be used with
et_ranges
.Temporal sequence
et_ca_ranger
around a closest approach, for a flyby trajectory.Add custom temporal
unit
toutc
conversion (ms
by default).
Changed#
Most of the main entry from the
esa
,maps
,rois
,spice
andtrajectory
sub-module are now accessible directly at the module root level.Convert to
UTC
now always return anumpy.datetime64
value.Empty
MaskedTrajectory
now haveNaT
(not-a-time) attribute, instead ofNone
.Update CReMA list to add
4.2b22.1 (cruise only)
in tests.Upgrade tests to
naif0012.tls
leapsecond file.
Fixed#
Map plot on a single couple of values.
Round
ET
converted value at 1e-3 to matchUTC
ms precision.In some rare cases, the endpoint in
et_range
was not discarded withendpoint=False
.
Deprecated#
TrajectoryConfig
was 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
Warning
to the user if the trajectory have more than1,000,000
points.GanymedeROIs
andCallistoROIs
now have a target attribute by default.MaskedTrajectory
now have opportunitywindows
.Basics projection plots unit tests.
Radius shortcuts to
SPICERef
objects.
Changed#
The intersection between a
Trajectory
and aROI
or aROIsCollection
now take into account the target attribute when it is provided.The projection of a
Trajectory
, aROI
or aROIsCollection
on aMap
is only possible if their respective target names are consistent.Enable Trajectory
ets
input asslice
.Masked trajectory UTC times are now in
numpy.datetime64
notstr
.Allow color bar optional output in color line.
ESA CReMA key is now unsensitive to
.
and_
changes in its keys.
Fixed#
Convert to
ET
fromnumpy.datetime64
input.Callisto ROI
4_1_02
min longitude.
Removed#
ProjTransform
inProjAxes
(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
Patch
andCollection
getter onalpha
,linewidth
,linestyle
andzorder
for theROI
andROIsCollection
.
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
PathPatch
andPatchCollection
now conserve thealpha
,linewidth
,linestyle
andzorder
parameters.
Fixed#
Image logos in the README is now pointing to the absolute URL on ReadTheDocs.
Missing
url
attribute for the homepage description inpip
.Ignore
RunTimeError
from 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
Trajectory
data can now be represented on the projected map as color lines.Intersection between
Trajectories
andROIs
is now tests and documented.SPICERef
objects now have aparent
,radii
andmu
properties.Vector scalar projection and rejection helpers.
UnitFormatter
can 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
reclat
and radians to degrees functions.When the kernels directory not found, an explicit
KernelsDirectoryNotFoundError
is 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
Trajectory
SPICE 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#
SPICERef
description ofIAU_FRAME
as fixed frame (and not as inertial).Inversion between the
target
and theobserver
in SPICEspkezr
function (for stellar aberration corrections).Gitlab CI stages rules and deployment trigger.
PyPI broken link.
Broken
pylint
command in README.
Release 0.5.0 - 2021/02/16#
Added#
Direct projection of the
Trajectory
on the moons background.Projection in map coordinates before plotting the data and improve
np.ndarray
data projection.Logical operator (
&
and^
) on theTrajectory
andROIs
intersections.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.
Trajectory
documentation 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
Trajectory
and aROI
(s) is not a bijection.Regroup all the logger/debugger in a single sub-module.
Rewrite
cache_property
decorator 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
docs
as 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
Trajectory
points in Stephan ROIs.SPICEPool
error message.Projection tests coverage
Release 0.4.0 - 2021/02/19#
Added#
SPICE
utc
toet
convertor on list and arrays.Time ephemeris range with human readable time steps.
A
SPICEPool
handler can now provide feedback of the kernels loaded in the pool (with a logger).TrajConfig
helper will loaded the kernels setup and create theTrajectory
objects.SPICERef
object can be used to providename
and NAIFid
as string and integer.Sub-observer position on any
Trajectory
.GeoJsonROI
documentation and example.
Changed#
Isolate the
JUICE_CReMA
from theCReMA
definition.Allow failure on pypi deploy during the CD.
Pytest CI output are now colored.
Release 0.3.0 - 2021/02/04#
Added#
GeoJsonROI
object that behave like regularROI
but loaded from a.geojson
file (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 install
method.
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
CReMA
loader.
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
,MetaKernels
andCReMA
objects to manipulate the kernels files.Map
object 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
Path
object 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
wget
helper.
Changed#
Module bundled with a full test suite with coverage and sphinx documentation.
Fixed#
False Easting in Equirectangular projection.