User Manual 4.0 Data management system : Différence entre versions
(Page créée avec « == Introduction == === Scope === The scope of this chapter is to present data management. This section presents the three modules of the data management system originally... ») |
|||
Ligne 13 : | Ligne 13 : | ||
The data objects are available in the package <code>fr.cnes.sirius.patrius.data</code>. | The data objects are available in the package <code>fr.cnes.sirius.patrius.data</code>. | ||
− | |= | + | {| class="wikitable" |
− | | Orekit|{{ | + | |- |
+ | ! scope="col"| Library | ||
+ | ! scope="col"| Javadoc | ||
+ | |- | ||
+ | | Orekit | ||
+ | |[{{JavaDoc4.0}}/fr/cnes/sirius/patrius/data/package-summary.html Package fr.cnes.sirius.patrius.data] | ||
+ | |} | ||
=== Links === | === Links === | ||
Ligne 56 : | Ligne 62 : | ||
=== File formats === | === File formats === | ||
Patrius can read a variety of files: | Patrius can read a variety of files: | ||
− | * | + | * '''Static potential files''' |
These files contains static potential coefficients up to a certain order and degree and are used to compute Earth (or any other body) static potential perturbation. | These files contains static potential coefficients up to a certain order and degree and are used to compute Earth (or any other body) static potential perturbation. | ||
− | * | + | * '''Variable potential files''' |
Theses files contains variable potential coefficients up to a certain order and degree and are used to compute Earth (or any other body) variable potential perturbation. | Theses files contains variable potential coefficients up to a certain order and degree and are used to compute Earth (or any other body) variable potential perturbation. | ||
− | * | + | * '''Geomagnetic coefficients files''' |
These files contains geomagnetic coefficients and are used to compute Earth (or any other body) geomagnetic field. | These files contains geomagnetic coefficients and are used to compute Earth (or any other body) geomagnetic field. | ||
− | * | + | * '''Ionospheric coefficients files''' |
These files contains ionospheric data and are used to compute Earth ionospheric correction. | These files contains ionospheric data and are used to compute Earth ionospheric correction. | ||
− | * | + | * '''Solar activity files''' |
These files contains solar flux and geomagnetic coefficients are used to get solar activity in order to compute drag perturbation. | These files contains solar flux and geomagnetic coefficients are used to get solar activity in order to compute drag perturbation. | ||
− | * | + | * '''Earth Orientation Parameters files''' |
These files contains earth orientation parameters (polar motion, LOD, etc.) used in frames transformation. | These files contains earth orientation parameters (polar motion, LOD, etc.) used in frames transformation. | ||
− | * | + | * '''TAI-UTC shift files''' |
These files contains TAI-TUC shift. | These files contains TAI-TUC shift. | ||
− | * | + | * '''Orbital data files''' |
These files are used to store orbital ephemeris | These files are used to store orbital ephemeris | ||
− | * | + | * '''Third body ephemeris files''' |
These files are used to store third-body orbital ephemeris (Sun, Moon, etc.) | These files are used to store third-body orbital ephemeris (Sun, Moon, etc.) | ||
Ligne 92 : | Ligne 98 : | ||
|=(% colspan="3" %)Data type|=(% colspan="6" %)Data provider|=(% colspan="6" %)Format|=(% colspan="4" %)Reader | |=(% colspan="3" %)Data type|=(% colspan="6" %)Data provider|=(% colspan="6" %)Format|=(% colspan="4" %)Reader | ||
|(% colspan="3" %)**GRGS**|(% colspan="6" %) Not direct link. This link provides GRGC potential coefficients | |(% colspan="3" %)**GRGS**|(% colspan="6" %) Not direct link. This link provides GRGC potential coefficients | ||
− | [[http://grgs.obs-mip.fr/grace/variable-models-grace-lageos/interactive-tools/Check-individual-solutions | + | [[http://grgs.obs-mip.fr/grace/variable-models-grace-lageos/interactive-tools/Check-individual-solutions]]|(% colspan="6" %) |
[[http://grgs.obs-mip.fr/grace/variable-models-grace-lageos/formats||rel="__blank"]]|(% colspan="4" %){{JDLink label="GRGSFormatReader" jd="OR" suffix="fr/cnes/sirius/patrius/forces/gravity/potential/GRGSFormatReader.html"/}} | [[http://grgs.obs-mip.fr/grace/variable-models-grace-lageos/formats||rel="__blank"]]|(% colspan="4" %){{JDLink label="GRGSFormatReader" jd="OR" suffix="fr/cnes/sirius/patrius/forces/gravity/potential/GRGSFormatReader.html"/}} | ||
|(% colspan="3" %)**EGM**|(% colspan="6" %) | |(% colspan="3" %)**EGM**|(% colspan="6" %) | ||
Ligne 103 : | Ligne 109 : | ||
Not provided (not used any more, replaced by ICGEM format)|(% colspan="6" %)See below|(% colspan="4" %){{JDLink label="SHMFormatReader" jd="OR" suffix="fr/cnes/sirius/patrius/forces/gravity/potential/SHMFormatReader.html"/}} | Not provided (not used any more, replaced by ICGEM format)|(% colspan="6" %)See below|(% colspan="4" %){{JDLink label="SHMFormatReader" jd="OR" suffix="fr/cnes/sirius/patrius/forces/gravity/potential/SHMFormatReader.html"/}} | ||
− | |||
− | Column index: | + | {| class="wikitable" |
− | 1:Degree of coefficients | + | |- |
− | 2:Order of coefficients | + | ! scope="col"| Data type |
− | 3:Tesseral-sectorial cosinus coefficient | + | ! scope="col"| Data provider |
− | 4:Tesseral-sectorial sinus coefficient | + | ! scope="col"| Format |
− | 5:Sigma applied to the cosinus | + | ! scope="col"| Reader |
+ | |- | ||
+ | |'''GRGS''' | ||
+ | | Not direct link. This link provides GRGC potential coefficients [http://grgs.obs-mip.fr/grace/variable-models-grace-lageos/interactive-tools/Check-individual-solutions] | ||
+ | |[http://grgs.obs-mip.fr/grace/variable-models-grace-lageos/formats] | ||
+ | |[{{JavaDoc4.0}}/fr/cnes/sirius/patrius/forces/gravity/potential/GRGSFormatReader.html GRGSFormatReader] | ||
+ | |- | ||
+ | |'''EGM''' | ||
+ | |[http://earth-info.nga.mil/GandG/wgs84/gravitymod/egm2008/first_release.html] | ||
+ | |See below | ||
+ | |[{{JavaDoc4.0}}/fr/cnes/sirius/patrius/forces/gravity/potential/EGMFormatReader.html EGMFormatReader] | ||
+ | |- | ||
+ | |'''ICGEM''' | ||
+ | |[http://icgem.gfz-potsdam.de/tom_longtime] | ||
+ | |[http://icgem.gfz-potsdam.de/ICGEM-Format-2011.pdf] | ||
+ | |[{{JavaDoc4.0}}/fr/cnes/sirius/patrius/forces/gravity/potential/ICGEMFormatReader.html ICGEMFormatReader] | ||
+ | |- | ||
+ | |'''SHM''' | ||
+ | |Not provided (not used any more, replaced by ICGEM format) | ||
+ | |See below | ||
+ | |[{{JavaDoc4.0}}/fr/cnes/sirius/patrius/forces/gravity/potential/SHMFormatReader.html SHMFormatReader] | ||
+ | |} | ||
+ | |||
+ | '''EGM file format''' (//Column text file//) | ||
+ | |||
+ | Column index:<br> | ||
+ | 1:Degree of coefficients<br> | ||
+ | 2:Order of coefficients<br> | ||
+ | 3:Tesseral-sectorial cosinus coefficient<br> | ||
+ | 4:Tesseral-sectorial sinus coefficient<br> | ||
+ | 5:Sigma applied to the cosinus<br> | ||
6:Sigma applied to the sinus | 6:Sigma applied to the sinus | ||
− | + | [[File:EGM.png|center]] | |
− | [[ | + | |
+ | '''SHM file format''' (//Column text file//) | ||
− | + | Column index:<br> | |
+ | 2:Degree of coefficients<br> | ||
+ | 3:Order of coefficients<br> | ||
+ | 4:Tesseral-sectorial cosinus coefficient<br> | ||
+ | 5:Tesseral-sectorial sinus coefficient<br> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | [[File:SHM.png|center]] | |
− | [[ | + | |
==== Variable Potential ==== | ==== Variable Potential ==== | ||
− | Variable potential coefficients files contains potential coefficients up to a certain order and degree. | + | Variable potential coefficients files contains potential coefficients up to a certain order and degree.<br> |
Warning: at very high order and degree (> 100), some numerical quality issues can appear and results may be degraded. | Warning: at very high order and degree (> 100), some numerical quality issues can appear and results may be degraded. | ||
FES2004 is used to model oceanic tides. | FES2004 is used to model oceanic tides. | ||
− | |= | + | {| class="wikitable" |
− | | | + | |- |
− | + | ! scope="col"| Data type | |
− | + | ! scope="col"| Data provider | |
− | | | + | ! scope="col"| Format |
+ | ! scope="col"| Reader | ||
+ | |- | ||
+ | |'''GRGSRL02''' | ||
+ | |[http://grgs.obs-mip.fr/grace/variable-models-grace-lageos/interactive-tools/Check-individual-solutions] | ||
+ | |[http://grgs.obs-mip.fr/grace/variable-models-grace-lageos/formats] | ||
+ | |[{{JavaDoc4.0}}/fr/cnes/sirius/patrius/forces/gravity/variations/coefficients/GRGSRL02FormatReader.html GRGSRL02FormatReader] | ||
+ | |- | ||
+ | |'''FES2004''' | ||
+ | |[https://www.aviso.altimetry.fr/en/data/products/auxiliary-products/global-tide-fes.html] | ||
+ | |See below | ||
+ | |[{{JavaDoc4.0}}/fr/cnes/sirius/patrius/forces/gravity/tides/coefficients/FES2004FormatReader.html FES2004FormatReader] | ||
+ | |} | ||
**FES2004 file format** (//Column text file//) | **FES2004 file format** (//Column text file//) | ||
− | Column index: | + | Column index:<br> |
− | 1:Doodson number | + | 1:Doodson number<br> |
− | 2:Darwin number | + | 2:Darwin number<br> |
− | 3:Degree of coefficients | + | 3:Degree of coefficients <br> |
− | 4:Order of coefficients | + | 4:Order of coefficients<br> |
− | 5:Sinus coefficient positif | + | 5:Sinus coefficient positif<br> |
− | 6:Cosinus coefficient positif | + | 6:Cosinus coefficient positif<br> |
− | 7:Sinus coefficient negatif | + | 7:Sinus coefficient negatif<br> |
− | 8:Cosinus coefficient negatif | + | 8:Cosinus coefficient negatif<br> |
− | 9:Positif coefficient | + | 9:Positif coefficient<br> |
− | 10:Epsilon positif | + | 10:Epsilon positif<br> |
− | 11:Negatif coefficient | + | 11:Negatif coefficient<br> |
12:Negatif epsilon | 12:Negatif epsilon | ||
− | + | [[File:FES2004.png|center]] | |
− | [[ | + | |
==== Geomagnetic coefficients ==== | ==== Geomagnetic coefficients ==== | ||
Ligne 163 : | Ligne 208 : | ||
Geomagnetic coefficients fiels contains geomagnetic coefficients up to a certain order and degree. | Geomagnetic coefficients fiels contains geomagnetic coefficients up to a certain order and degree. | ||
− | |= | + | {| class="wikitable" |
− | | | + | |- |
− | WMM data: | + | ! scope="col"| Data type |
+ | ! scope="col"| Data provider | ||
+ | ! scope="col"| Format | ||
+ | ! scope="col"| Reader | ||
+ | |- | ||
+ | |'''COF''' | ||
+ | |IGCRF data: [https://www.ngdc.noaa.gov/IAGA/vmod/igrf.html] WMM data: [https://www.ngdc.noaa.gov/geomag/WMM/soft.shtml] | ||
+ | |See below | ||
+ | |[{{JavaDoc4.0}}/fr/cnes/sirius/patrius/models/earth/COFFileFormatReader.html COFFileFormatReader] | ||
+ | |} | ||
− | + | '''COF file format''' (//Column text file//) | |
− | Column index: | + | Column index:<br> |
− | 1:Degree of coefficients | + | 1:Degree of coefficients <br> |
− | 2:Order of coefficients | + | 2:Order of coefficients<br> |
− | 3:g coefficient at position n,m | + | 3:g coefficient at position n,m<br> |
− | 4:h coefficient at position n,m | + | 4:h coefficient at position n,m<br> |
− | 5:dg coefficient at position n,m | + | 5:dg coefficient at position n,m<br> |
− | 6:dh coefficient at position n,m | + | 6:dh coefficient at position n,m<br> |
− | g and h are the Gauss coefficients of main geomagnetic model (nT) | + | g and h are the Gauss coefficients of main geomagnetic model (nT)<br> |
dg and dh are the Gauss coefficients of secular geomagnetic model (nT/years) | dg and dh are the Gauss coefficients of secular geomagnetic model (nT/years) | ||
− | + | [[File:COF.png|center]] | |
− | [[ | + | |
==== Ionospheric coefficients ==== | ==== Ionospheric coefficients ==== | ||
Ligne 186 : | Ligne 239 : | ||
Ionospheric coefficients files contains ionospheric coefficient to model the state of the ionosphere. | Ionospheric coefficients files contains ionospheric coefficient to model the state of the ionosphere. | ||
− | |= | + | {| class="wikitable" |
− | | | + | |- |
− | | | + | ! scope="col"| Data type |
+ | ! scope="col"| Data provider | ||
+ | ! scope="col"| Format | ||
+ | ! scope="col"| Reader | ||
+ | |- | ||
+ | |'''CCIR12''' | ||
+ | |N/A | ||
+ | |See below | ||
+ | |[{{JavaDoc4.0}}/fr/cnes/sirius/patrius/signalpropagation/iono/R12Loader.html R12Loader] | ||
+ | |- | ||
+ | |'''USK(NEWUSK)''' | ||
+ | |N/A | ||
+ | |See below | ||
+ | |[{{JavaDoc4.0}}/fr/cnes/sirius/patrius/signalpropagation/iono/USKLoader.html USKLoader] | ||
+ | |} | ||
+ | |||
+ | '''CCIR12 file format''' (//Column text file//) | ||
− | + | Column index:<br> | |
+ | 1:Year <br> | ||
+ | 2:Month<br> | ||
+ | 3:Unused<br> | ||
+ | 4:Midval<br> | ||
+ | 5:Unused<br> | ||
+ | 6:Midday<br> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | [[File:CCIR12.png]] | |
− | [[ | + | |
− | + | '''USK file format''' (//Line text file//) | |
− | + | [[File:NEWUSK.png|center]] | |
− | [[ | + | |
==== Solar activity ==== | ==== Solar activity ==== | ||
Ligne 212 : | Ligne 278 : | ||
Solar activity contains solar flux and geomagnetic coefficients for a given timespan. ACSOL and NOAA files usually provide data for several years. | Solar activity contains solar flux and geomagnetic coefficients for a given timespan. ACSOL and NOAA files usually provide data for several years. | ||
− | |= | + | {| class="wikitable" |
− | | | + | |- |
− | | | + | ! scope="col"| Data type |
+ | ! scope="col"| Data provider | ||
+ | ! scope="col"| Format | ||
+ | ! scope="col"| Reader | ||
+ | |- | ||
+ | |'''ACSOL''' | ||
+ | |N/A | ||
+ | |See below | ||
+ | |[{{JavaDoc4.0}}/fr/cnes/sirius/patrius/forces/atmospheres/solarActivity/ACSOLFormatReader.html ACSOLFormatReader] | ||
+ | |- | ||
+ | |'''NOAA''' | ||
+ | |N/A | ||
+ | |See below | ||
+ | |[{{JavaDoc4.0}}/fr/cnes/sirius/patrius/forces/atmospheres/solarActivity/NOAAFormatReader.html NOAAFormatReader] | ||
+ | |} | ||
− | + | '''ACSOL file format''' (//Column text file//) | |
− | Column index: | + | Column index:<br> |
− | 1:Julian day since 1950 | + | 1:Julian day since 1950<br> |
− | 2:Seconds of the day (UTC) | + | 2:Seconds of the day (UTC)<br> |
− | 3:Flux at JD + seconds | + | 3:Flux at JD + seconds<br> |
4-11 are the three-hours AP of the intervals | 4-11 are the three-hours AP of the intervals | ||
− | + | [[File:ACSOL.png|center]] | |
− | [[ | + | |
− | + | '''NOAA file format''' (//Column text file//) | |
− | Column index: | + | Column index:<br> |
− | 1:Day | + | 1:Day<br> |
− | 2:Flux at the day | + | 2:Flux at the day<br> |
− | 3:The background flux | + | 3:The background flux <br> |
− | 4-11:the three-hours AP of the intervals | + | 4-11:the three-hours AP of the intervals <br> |
− | 12:Year | + | 12:Year<br> |
13:Unused character flag | 13:Unused character flag | ||
==== Pole data ==== | ==== Pole data ==== | ||
− | These files contains earth orientation parameters (polar motion, LOD, etc.) used in frames transformation. | + | These files contains earth orientation parameters (polar motion, LOD, etc.) used in frames transformation.<br> |
These data are usually valid of a timespan of several days/months, although there is no theoretical limit. | These data are usually valid of a timespan of several days/months, although there is no theoretical limit. | ||
Ligne 249 : | Ligne 328 : | ||
|(% colspan="3" %)**Datas "Rapid and Prediction" (XML)**|(% colspan="6" %)[[https://datacenter.iers.org/eop/-/somos/5Rgv/eop?||rel="__blank"]]|(% colspan="6" %)Same datas than the column file but write in the xml format|(% colspan="4" %){{JDLink label="RapidDataAndPredictionXMLLoader" jd="OR" suffix="fr/cnes/sirius/patrius/frames/configuration/eop/RapidDataAndPredictionXMLLoader.html"/}} | |(% colspan="3" %)**Datas "Rapid and Prediction" (XML)**|(% colspan="6" %)[[https://datacenter.iers.org/eop/-/somos/5Rgv/eop?||rel="__blank"]]|(% colspan="6" %)Same datas than the column file but write in the xml format|(% colspan="4" %){{JDLink label="RapidDataAndPredictionXMLLoader" jd="OR" suffix="fr/cnes/sirius/patrius/frames/configuration/eop/RapidDataAndPredictionXMLLoader.html"/}} | ||
− | + | '''EOP 05 C04 and EOP 08 C04 files format''' (//Column text file//) | |
− | Column index: | + | Column index:<br> |
− | 1:Date at 0h(UTC) | + | 1:Date at 0h(UTC)<br> |
− | 2:Modified Julian Day | + | 2:Modified Julian Day<br> |
− | 3:x(") | + | 3:x(")<br> |
− | 4:y(") | + | 4:y(")<br> |
− | 5:UT1-UTC(s) | + | 5:UT1-UTC(s)<br> |
− | 6:LOD(s) | + | 6:LOD(s)<br> |
− | 7:DPsi(") | + | 7:DPsi(")<br> |
− | 8:DEps(") | + | 8:DEps(")<br> |
− | 9:x error (") | + | 9:x error (")<br> |
− | 10:y error (") | + | 10:y error (")<br> |
− | 11:UT1-UTC error (s) | + | 11:UT1-UTC error (s)<br> |
− | 12:LOD error(s) | + | 12:LOD error(s)<br> |
− | 13:Dpsi error(") | + | 13:Dpsi error(")<br> |
− | 14:DEpsilon error(") | + | 14:DEpsilon error(")<br> |
− | x and y are the coordinales of the Celestial Ephemeris Pole. | + | x and y are the coordinales of the Celestial Ephemeris Pole.<br> |
− | UT1: Universal time, the time of the earth clock | + | UT1: Universal time, the time of the earth clock<br> |
LOD: Length Of Day is the excess of revolution time | LOD: Length Of Day is the excess of revolution time | ||
− | + | [[File:EOP08C04.png|center]] | |
− | [[ | + | |
==== TAI-UTC shift==== | ==== TAI-UTC shift==== | ||
Ligne 280 : | Ligne 358 : | ||
|(% colspan="3" %)**Gap TAI-UTC**|(% colspan="6" %)[[ftp://hpiers.obspm.fr/iers/bul/bulc/UTC-TAI.history||rel="__blank"]]|(% colspan="6" %)See below|(% colspan="4" %){{JDLink label="UTCTAIHistoryFilesLoader" jd="OR" suffix="fr/cnes/sirius/patrius/time/UTCTAIHistoryFilesLoader.html"/}} | |(% colspan="3" %)**Gap TAI-UTC**|(% colspan="6" %)[[ftp://hpiers.obspm.fr/iers/bul/bulc/UTC-TAI.history||rel="__blank"]]|(% colspan="6" %)See below|(% colspan="4" %){{JDLink label="UTCTAIHistoryFilesLoader" jd="OR" suffix="fr/cnes/sirius/patrius/time/UTCTAIHistoryFilesLoader.html"/}} | ||
− | + | '''TAI-UTC file format''' (//Column text file//) | |
− | Column index: | + | Column index:<br> |
− | 1:Begining date-Ending date | + | 1:Begining date-Ending date<br> |
2:Difference TAI-UTC between the begining date and the ending date | 2:Difference TAI-UTC between the begining date and the ending date | ||
− | + | [[File:TAI-TUC.png|center]] | |
− | [[ | + | |
==== Orbital data ==== | ==== Orbital data ==== | ||
− | These files are used to store orbital ephemeris. | + | These files are used to store orbital ephemeris.<br> |
− | TLE provides orbit at one date. Ephemeris is then retrieved thanks to SGP4/SDP4 propagation model. | + | TLE provides orbit at one date. Ephemeris is then retrieved thanks to SGP4/SDP4 propagation model.<br> |
SP3 files provide orbit over an extended time span (ex: 1 day). | SP3 files provide orbit over an extended time span (ex: 1 day). | ||
− | |= | + | {| class="wikitable" |
− | | | + | |- |
− | | | + | ! scope="col"| Data type |
+ | ! scope="col"| Data provider | ||
+ | ! scope="col"| Format | ||
+ | ! scope="col"| Reader | ||
+ | |- | ||
+ | |'''TLE''' | ||
+ | |[https://www.projectpluto.com/pluto/mpecs/pseudo.htm] | ||
+ | |[https://www.mmto.org/obscats/tle.html] | ||
+ | [{{JavaDoc4.0}}/fr/cnes/sirius/patrius/propagation/analytical/tle/TLESeries.html TLESeries] | ||
+ | |- | ||
+ | |'''SP3''' | ||
+ | |GPS and GLONASS only [ftp://cddis.gsfc.nasa.gov/gnss/products] | ||
+ | |[ftp://igs.org/pub/data/format/sp3_docu.txt] | ||
+ | |[{{JavaDoc4.0}}/fr/cnes/sirius/patrius/files/sp3/SP3File.html SP3File] | ||
+ | |} | ||
Note: * SP3 files can be written by anyone. They are however mainly used ton provide GPS and GLONASS ephemeris. | Note: * SP3 files can be written by anyone. They are however mainly used ton provide GPS and GLONASS ephemeris. | ||
Ligne 315 : | Ligne 406 : | ||
The data package includes the following interfaces : | The data package includes the following interfaces : | ||
− | + | '''Data''' | |
|=(% colspan="3" %)Class|=(% colspan="6" %)Summary|=(% colspan="1" %)Javadoc | |=(% colspan="3" %)Class|=(% colspan="6" %)Summary|=(% colspan="1" %)Javadoc | ||
Ligne 324 : | Ligne 415 : | ||
The data package includes the following classes : | The data package includes the following classes : | ||
− | + | '''Data''' | |
|=(% colspan="3" %)Class|=(% colspan="6" %)Summary|=(% colspan="1" %)Javadoc | |=(% colspan="3" %)Class|=(% colspan="6" %)Summary|=(% colspan="1" %)Javadoc | ||
Ligne 332 : | Ligne 423 : | ||
|(% colspan="3" %)**ZipJarCrawler**|(% colspan="6" %)This class browses all entries in a zip/jar archive in filesystem or in classpath.|(% colspan="1" %){{JDLink label="..." jd="OR" suffix="fr/cnes/sirius/patrius/data/ZipJarCrawler.html"/}} | |(% colspan="3" %)**ZipJarCrawler**|(% colspan="6" %)This class browses all entries in a zip/jar archive in filesystem or in classpath.|(% colspan="1" %){{JDLink label="..." jd="OR" suffix="fr/cnes/sirius/patrius/data/ZipJarCrawler.html"/}} | ||
− | == [[ | + | == [[File:lightBulb.png]] Tips & Tricks == |
=== Strengths === | === Strengths === | ||
Version du 12 mars 2018 à 15:36
Sommaire
Introduction
Scope
The scope of this chapter is to present data management. This section presents the three modules of the data management system originally provided by Orekit :
- how does the data management system work?
- how to set it up?
- how to use it?
- how to add data to what already exists?
- what are the pros and cons of this system?
Javadoc
The data objects are available in the package fr.cnes.sirius.patrius.data
.
Library | Javadoc |
---|---|
Orekit | Package fr.cnes.sirius.patrius.data |
Links
Modèle:SpecialInclusion prefix=$theme sub section="Links"/
Useful Documents
Modèle:SpecialInclusion prefix=$theme sub section="UsefulDocs"/
Package Overview
The data loading process is organized through three main objects.
The DataProvider
classes handle data sources. Each one of them has a particular type of source it can browse. The DirectoryCrawler
performs a bottom-first search in a directory tree. The ZipJarCrawler
works alike, but inside a compressed file. The ClassPathCrawler
handles a list of data files and/or compressed files that are in the classpath (it can not search recursively like the DirectoryCrawler
though). Finally, the NetworkCrawler
works like the ClassPathCrawler
, although in its case, it has a list of URLs instead of files. There is no limit to the number of DataProviders a program can use at once.
The Providers are listed and put to work through the DataProvidersManager
singleton. This is the single point of access to the data management system. It contains a list of Providers that are queried every time a user needs data.
The various crawlers provide streams to the DataLoader
. From these streams, the DataLoaders can reconstruct data that was stored in files (either compressed or not), even if some files come from different sources. These streams effectively separate the machine world from the program world, because they hide the former to the latter. Therefore, parsing data from a new format only means creating a loader, and being able to read another kind of file means creating a DataProvider
. Note that the DataLoaders usually serve as a facade for the higher layers of the program.
Features Description
Data providers
Default provider
The data management system can use a system-wide property, orekit.data.path
, as an entry point for default data. This default data must be file-based (either a file system entry point or a java resource) and either a directory or a zip/jar file.
Setting a default provider is not mandatory, and must be done explicitly by :
- setting a value to
orekit.data.path
, - calling
addDefaultProviders
on the data provider manager.
Adding a provider
Modèle:SpecialInclusion prefix=$theme sub section="Provider"/
Using the data management system
The data management system main operation is through the feed
method. This method takes a DataLoader
, and a regexp string matching the name of files the DataLoader
is able to process. In this method call :
- the
DataProviders
list is traversed in the priority order. - the first
DataProvider
providing a file matching the regexp is the one (and only) used to feed theDataLoader
.
Adding new data
Modèle:SpecialInclusion prefix=$theme sub section="Adding"/
File formats
Patrius can read a variety of files:
- Static potential files
These files contains static potential coefficients up to a certain order and degree and are used to compute Earth (or any other body) static potential perturbation.
- Variable potential files
Theses files contains variable potential coefficients up to a certain order and degree and are used to compute Earth (or any other body) variable potential perturbation.
- Geomagnetic coefficients files
These files contains geomagnetic coefficients and are used to compute Earth (or any other body) geomagnetic field.
- Ionospheric coefficients files
These files contains ionospheric data and are used to compute Earth ionospheric correction.
- Solar activity files
These files contains solar flux and geomagnetic coefficients are used to get solar activity in order to compute drag perturbation.
- Earth Orientation Parameters files
These files contains earth orientation parameters (polar motion, LOD, etc.) used in frames transformation.
- TAI-UTC shift files
These files contains TAI-TUC shift.
- Orbital data files
These files are used to store orbital ephemeris
- Third body ephemeris files
These files are used to store third-body orbital ephemeris (Sun, Moon, etc.)
The following sections describe all file readable in PATRIUS. When the file format is not described anywhere, a short description is detailed below the tab.
Static Potential
Static potential coefficients files contains potential coefficients up to a certain order and degree. Warning: at very high order and degree (> 100), some numerical quality issues can appear and results may be degraded.
|=(% colspan="3" %)Data type|=(% colspan="6" %)Data provider|=(% colspan="6" %)Format|=(% colspan="4" %)Reader |(% colspan="3" %)**GRGS**|(% colspan="6" %) Not direct link. This link provides GRGC potential coefficients [[1]]|(% colspan="6" %) ["__blank"]|(% colspan="4" %)Modèle:JDLink label="GRGSFormatReader" jd="OR" suffix="fr/cnes/sirius/patrius/forces/gravity/potential/GRGSFormatReader.html"/ |(% colspan="3" %)**EGM**|(% colspan="6" %) ["__blank"]|(% colspan="6" %) See below|(% colspan="4" %)Modèle:JDLink label="EGMFormatReader" jd="OR" suffix="fr/cnes/sirius/patrius/forces/gravity/potential/EGMFormatReader.html"/ |(% colspan="3" %)**ICGEM**|(% colspan="6" %) ["__blank"]|(% colspan="6" %) ["__blank"]|(% colspan="4" %)Modèle:JDLink label="ICGEMFormatReader" jd="OR" suffix="fr/cnes/sirius/patrius/forces/gravity/potential/ICGEMFormatReader.html"/ |(% colspan="3" %)**SHM**|(% colspan="6" %) Not provided (not used any more, replaced by ICGEM format)|(% colspan="6" %)See below|(% colspan="4" %)Modèle:JDLink label="SHMFormatReader" jd="OR" suffix="fr/cnes/sirius/patrius/forces/gravity/potential/SHMFormatReader.html"/
Data type | Data provider | Format | Reader |
---|---|---|---|
GRGS | Not direct link. This link provides GRGC potential coefficients [2] | [3] | GRGSFormatReader |
EGM | [4] | See below | EGMFormatReader |
ICGEM | [5] | [6] | ICGEMFormatReader |
SHM | Not provided (not used any more, replaced by ICGEM format) | See below | SHMFormatReader |
EGM file format (//Column text file//)
Column index:
1:Degree of coefficients
2:Order of coefficients
3:Tesseral-sectorial cosinus coefficient
4:Tesseral-sectorial sinus coefficient
5:Sigma applied to the cosinus
6:Sigma applied to the sinus
SHM file format (//Column text file//)
Column index:
2:Degree of coefficients
3:Order of coefficients
4:Tesseral-sectorial cosinus coefficient
5:Tesseral-sectorial sinus coefficient
Variable Potential
Variable potential coefficients files contains potential coefficients up to a certain order and degree.
Warning: at very high order and degree (> 100), some numerical quality issues can appear and results may be degraded.
FES2004 is used to model oceanic tides.
Data type | Data provider | Format | Reader |
---|---|---|---|
GRGSRL02 | [7] | [8] | GRGSRL02FormatReader |
FES2004 | [9] | See below | FES2004FormatReader |
- FES2004 file format** (//Column text file//)
Column index:
1:Doodson number
2:Darwin number
3:Degree of coefficients
4:Order of coefficients
5:Sinus coefficient positif
6:Cosinus coefficient positif
7:Sinus coefficient negatif
8:Cosinus coefficient negatif
9:Positif coefficient
10:Epsilon positif
11:Negatif coefficient
12:Negatif epsilon
Geomagnetic coefficients
Geomagnetic coefficients fiels contains geomagnetic coefficients up to a certain order and degree.
Data type | Data provider | Format | Reader |
---|---|---|---|
COF | IGCRF data: [10] WMM data: [11] | See below | COFFileFormatReader |
COF file format (//Column text file//)
Column index:
1:Degree of coefficients
2:Order of coefficients
3:g coefficient at position n,m
4:h coefficient at position n,m
5:dg coefficient at position n,m
6:dh coefficient at position n,m
g and h are the Gauss coefficients of main geomagnetic model (nT)
dg and dh are the Gauss coefficients of secular geomagnetic model (nT/years)
Ionospheric coefficients
Ionospheric coefficients files contains ionospheric coefficient to model the state of the ionosphere.
Data type | Data provider | Format | Reader |
---|---|---|---|
CCIR12 | N/A | See below | R12Loader |
USK(NEWUSK) | N/A | See below | USKLoader |
CCIR12 file format (//Column text file//)
Column index:
1:Year
2:Month
3:Unused
4:Midval
5:Unused
6:Midday
USK file format (//Line text file//)
Solar activity
Solar activity contains solar flux and geomagnetic coefficients for a given timespan. ACSOL and NOAA files usually provide data for several years.
Data type | Data provider | Format | Reader |
---|---|---|---|
ACSOL | N/A | See below | ACSOLFormatReader |
NOAA | N/A | See below | NOAAFormatReader |
ACSOL file format (//Column text file//)
Column index:
1:Julian day since 1950
2:Seconds of the day (UTC)
3:Flux at JD + seconds
4-11 are the three-hours AP of the intervals
NOAA file format (//Column text file//)
Column index:
1:Day
2:Flux at the day
3:The background flux
4-11:the three-hours AP of the intervals
12:Year
13:Unused character flag
Pole data
These files contains earth orientation parameters (polar motion, LOD, etc.) used in frames transformation.
These data are usually valid of a timespan of several days/months, although there is no theoretical limit.
|=(% colspan="3" %)Data type|=(% colspan="6" %)Data provider|=(% colspan="6" %)Format|=(% colspan="4" %)Reader |(% colspan="3" %)**Bulletin B**|(% colspan="6" %)["__blank"]|(% colspan="6" %)["__blank"]|(% colspan="4" %)Modèle:JDLink label="BulletinBFilesLoader" jd="OR" suffix="fr/cnes/sirius/patrius/frames/configuration/eop/BulletinBFilesLoader.html"/ |(% colspan="3" %)**EOP 05 C04**|(% colspan="6" %)["__blank"]|(% colspan="6" %)See below|(% colspan="4" %)Modèle:JDLink label="EOP05C04FilesLoader" jd="OR" suffix="fr/cnes/sirius/patrius/frames/configuration/eop/EOP05C04FilesLoader.html"/ |(% colspan="3" %)**EOP 08 C04**|(% colspan="6" %)["__blank"]|(% colspan="6" %)See below|(% colspan="4" %)Modèle:JDLink label="EOP08C04FilesLoader" jd="OR" suffix="fr/cnes/sirius/patrius/frames/configuration/eop/EOP08C04FilesLoader.html"/ |(% colspan="3" %)**Datas "Rapid and Prediction" (TXT)**|(% colspan="6" %)["__blank"]|(% colspan="6" %)["__blank"]|(% colspan="4" %)Modèle:JDLink label="RapidDataAndPredictionColumnsLoader" jd="OR" suffix="fr/cnes/sirius/patrius/frames/configuration/eop/RapidDataAndPredictionColumnsLoader.html"/ |(% colspan="3" %)**Datas "Rapid and Prediction" (XML)**|(% colspan="6" %)["__blank"]|(% colspan="6" %)Same datas than the column file but write in the xml format|(% colspan="4" %)Modèle:JDLink label="RapidDataAndPredictionXMLLoader" jd="OR" suffix="fr/cnes/sirius/patrius/frames/configuration/eop/RapidDataAndPredictionXMLLoader.html"/
EOP 05 C04 and EOP 08 C04 files format (//Column text file//)
Column index:
1:Date at 0h(UTC)
2:Modified Julian Day
3:x(")
4:y(")
5:UT1-UTC(s)
6:LOD(s)
7:DPsi(")
8:DEps(")
9:x error (")
10:y error (")
11:UT1-UTC error (s)
12:LOD error(s)
13:Dpsi error(")
14:DEpsilon error(")
x and y are the coordinales of the Celestial Ephemeris Pole.
UT1: Universal time, the time of the earth clock
LOD: Length Of Day is the excess of revolution time
TAI-UTC shift
These files contains TAI-TUC shift. Official data contains shift since the beginning of space era (1961).
|=(% colspan="3" %)Data type|=(% colspan="6" %)Data provider|=(% colspan="6" %)Format|=(% colspan="4" %)Reader |(% colspan="3" %)**Gap TAI-UTC**|(% colspan="6" %)["__blank"]|(% colspan="6" %)See below|(% colspan="4" %)Modèle:JDLink label="UTCTAIHistoryFilesLoader" jd="OR" suffix="fr/cnes/sirius/patrius/time/UTCTAIHistoryFilesLoader.html"/
TAI-UTC file format (//Column text file//)
Column index:
1:Begining date-Ending date
2:Difference TAI-UTC between the begining date and the ending date
Orbital data
These files are used to store orbital ephemeris.
TLE provides orbit at one date. Ephemeris is then retrieved thanks to SGP4/SDP4 propagation model.
SP3 files provide orbit over an extended time span (ex: 1 day).
Data type | Data provider | Format | Reader |
---|---|---|---|
TLE | [12] | [13] | |
SP3 | GPS and GLONASS only [14] | [15] | SP3File |
Note: * SP3 files can be written by anyone. They are however mainly used ton provide GPS and GLONASS ephemeris.
Third body ephemeris
Third body ephemeris files contains ephemeris for third bodies (Moon, Sun, Jupiter) over an extended time span (ex: 1 or several days).
|=(% colspan="3" %)Data type|=(% colspan="6" %)Data provider|=(% colspan="6" %)Format|=(% colspan="4" %)Reader |(% colspan="3" %)**JPL**|(% colspan="6" %)["__blank"]|(% colspan="6" %)["__blank"]|(% colspan="4" %)Modèle:JDLink label="JPLEphemeridesLoader" jd="OR" suffix="fr/cnes/sirius/patrius/bodies/JPLEphemeridesLoader.html"/
Getting Started
Modèle:SpecialInclusion prefix=$theme sub section="GettingStarted"/
Contents
Interfaces
The data package includes the following interfaces :
Data
|=(% colspan="3" %)Class|=(% colspan="6" %)Summary|=(% colspan="1" %)Javadoc |(% colspan="3" %)**DataLoader**|(% colspan="6" %)Interface for loading data files from DataProvider data providers.|(% colspan="1" %)Modèle:JDLink label="..." jd="OR" suffix="fr/cnes/sirius/patrius/data/DataLoader.html"/ |(% colspan="3" %)**DataProvider**|(% colspan="6" %)Interface for providing data files to DataLoader file loaders.|(% colspan="1" %)Modèle:JDLink label="..." jd="OR" suffix="fr/cnes/sirius/patrius/data/DataProvider.html"/
Classes
The data package includes the following classes :
Data
|=(% colspan="3" %)Class|=(% colspan="6" %)Summary|=(% colspan="1" %)Javadoc |(% colspan="3" %)**DataProvidersManager**|(% colspan="6" %)This class is the single point of access for all data loading features.|(% colspan="1" %)Modèle:JDLink label="..." jd="OR" suffix="fr/cnes/sirius/patrius/data/DataProvidersManager.html"/ |(% colspan="3" %)**DirectoryCrawler**|(% colspan="6" %)This class handles data files recursively starting from a root directories.|(% colspan="1" %)Modèle:JDLink label="..." jd="OR" suffix="fr/cnes/sirius/patrius/data/DirectoryCrawler.html"/ |(% colspan="3" %)**NetworkCrawler**|(% colspan="6" %)This class handles a list of URLs pointing to data files or zip/jar on the net.|(% colspan="1" %)Modèle:JDLink label="..." jd="OR" suffix="fr/cnes/sirius/patrius/data/NetworkCrawler.html"/ |(% colspan="3" %)**ZipJarCrawler**|(% colspan="6" %)This class browses all entries in a zip/jar archive in filesystem or in classpath.|(% colspan="1" %)Modèle:JDLink label="..." jd="OR" suffix="fr/cnes/sirius/patrius/data/ZipJarCrawler.html"/
Tips & Tricks
Strengths
- Lightweight implementation. The providers never load data, they merely provide streams on demand to the loaders.
- Scalable for using data from several heterogeneous sources.
- Scalable for new data types : the user only needs to create a new
DataLoader
implementation to use a new data type in this system.
Weaknesses
- The user must be aware the data loading overhead happens any time a
DataLoader
is fed, so the user must manage its loaders so that they are fed only once. - Several sources for the same type of data cannot be used, since only the last provider added is used to feed data to a loader - unless the user manages the providers list accordingly, knowing one can only add elements or reset the whole list.
- The regexp is the only way to match a data file and a
DataLoader
. - As of today, the data management system is a thread-hostile singleton : a multithreaded application shares the same providers list for all threads, and it may deadlock on a concurrent access!