List of EPN-TAP parameters
(refreshed/completed April 2019) (SE)
EPN-TAP
- EPN-TAP is a VO access protocol dedicated to Planetary Science data. It is based on the TAP mechanism from IVOA, completed with sets of parameters and associated lists of values. In this regard, it is similar to ObsTAP but with a different scope.
- EPN-TAP version 2 is a major update of the protocol to accommodate larger services and simplify setup and use of data services. All parameters are described here.
Parameters which must be provided
are now clearly identified - those are not only mandatory, they also must provide a value.
They are mostly related to service description and granule identification.
+ See notes below the table.
Thematic extensions
Some science fields will require optional parameters, which need to be used consistently between services addressing the same field. Such extensions have to be designed by sub-groups involved in the corresponding data services, either as providers or users. This includes:
- Lab spectroscopy: parameters to describe mineralogical samples (and possibly other samples)
- Solar System objects: covers orbital/rotational parameters, physical properties, and taxonomy
- APIS: contains parameters for observing programs
- Contributive works / observing programs: enlargement of APIS extension to other data
- Exoplanets / planetary systems properties
- Map extension (to be enlarged)
- Events: covers the VOevent standard and other types of events
- Particle spectroscopy (to be finalized)
- Results of planetary 3D modelling run (in progress)
- Bibliographic entries? May be manageable otherwise, through bibcode / doi interpretation
Name, v2 | Value required (not NULL)? | SQL type | Unit / Format / Range | Description | UCD Please comment! | UCD in Obscore 1.1 (30/3/2016 version) | Utype (tentative) | Comments |
---|---|---|---|---|---|---|---|---|
EPNCore mandatory parameters |
|
|
| Current value | — ? : closest sense _ : N/A in ObsCore | from epntap v2 mixin (aug 2017) | ||
granule_uid | Y | Text |
| Internal table row index. | meta.id meta.id;meta.dataset | meta.id | Can be alphanum. | |
granule_gid | Y | Text |
| Common to granules of same type | meta.id | meta.id | E.g. same map projection, or geometry data products. Can be alphanum. | |
obs_id | Y | Text |
| Associates granules derived from the same data | meta.id;obs | meta.id | obscore:DataID.observationID | E.g. various representations / processing levels. Can be alphanum., may be the ID of original observation. Keep it simple in intricate situations. |
dataproduct_type | Y | Text |
| Organization of the data product, from enumerated list | meta.code.class | meta.id | Epn.dataProductType obscore:ObsDataset.dataProductType | |
target_name | Text |
| Standard IAU name of target (from a list related to target class), case sensitive. | meta.id;src | meta.id;src | Epn.TargetName | Case sensitive Services with no target_name do exist | |
target_class | Y | Text |
| Type of target, from enumerated list | src.class | src.class | Epn.TargetClass | |
time_min | Double | d (date as JD) | Start time (in JD). UTC measured at time_origin location (default is observer's frame) | time.start;obs | time.start;obs.exposure | Char.TimeAxis.Coverage.Bounds.Limits.Interval.StartTime TBD (from ObsCore) | ||
time_max | Double | d (date as JD) | Stop time (in JD). UTC measured at time_origin location (default is observer's frame) | time.end;obs | time.end;obs.exposure | Char.TimeAxis.Coverage.Bounds.Limits.Interval.StopTime TBD (from ObsCore) | ||
time_sampling_step_min | Double | s | Min time sampling step | time.resolution;stat.min | time.resolution — ? | Epn.Time.Time_sampling_step_min | ||
time_sampling_step_max | Double | s | Max time sampling step | time.resolution;stat.max | Epn.Time.Time_sampling_step_max | |||
time_exp_min | Double | s | Min integration time | time.duration;obs.exposure;stat.min | time.duration;obs.exposure | Epn.Time.Time_exp_min | ||
time_exp_max | Double | s | Max integration time | time.duration;obs.exposure;stat.max | Epn.Time.Time_exp_max | |||
spectral_range_min | Double | Hz | Min spectral range (frequency) | em.freq;stat.min | em.wl;stat.min (always as wl) | Epn.Spectral.Spectral_range_min | Always as freq | |
spectral_range_max | Double | Hz | Max spectral range (frequency) | em.freq;stat.max | em.wl;stat.max | Epn.Spectral.Spectral_range_max | ||
spectral_sampling_step_min | Double | Hz | Min spectral sampling step | em.freq.step;stat.min | meta.number | Epn.Spectral.Spectral_sampling_step_min | ||
spectral_sampling_step_max | Double | Hz | Max spectral sampling step | em.freq.step;stat.max | meta.number | Epn.Spectral.Spectral_sampling_step_max | ||
spectral_resolution_min | Double | Min spectral resolution (resolving power) | spect.resolution;stat.min | spect.resolution | Epn.Spectral.Spectral_resolution_min | Now (2019) provides resolving power |(lambda / delta(lambda)| = |f /Df| | ||
spectral_resolution_max | Double | Max spectral resolution (resolving power) | spect.resolution;stat.max | Epn.Spectral.Spectral_resolution_max | Now (2019) provides resolving power |(lambda / delta(lambda)| = |f /Df| | |||
c1min | Double | (1) Longitude from 0. to 359.9999 RA from 0. to 23.9999 | Min of first coordinate | pos;stat.min pos.distance;stat.min (bof) pos.eq.ra;stat.min for celestial pos.bodyrc.lon;stat.min for body pos.cartesian.x;stat.min for Cartesian pos.healpix for healpix (with 2 parameters? - weird) - TBC empty ("") for none (and no unit) | pos.eq.ra | Epn.Spatial.Spatial_range.c1min | Typo in current mixin (.lonG => .lon | |
c1max | Double | (1)
| Max of first coordinate | pos;stat.max, etc | Epn.Spatial.Spatial_range.c1max | |||
c2min | Double | (1) Latitude from -89.9999 to +89.9999 | Min of second coordinate | pos;stat.min pos.angDistance;stat.min or pos.az.azi;stat.min (for azimuth) pos.eq.dec;stat.min for celestial pos.bodyrc.lat;stat.min for body pos.cartesian.y;stat.min for Cartesian empty ("") for none (and no unit) | pos.eq.dec | Epn.Spatial.Spatial_range.c2min | ||
c2max | Double | (1) | Max of second coordinate | pos;stat.max, etc | Epn.Spatial.Spatial_range.c2max | |||
c3min | Double | (1) | Min of third coordinate | pos;stat.min pos.AngDistance;stat.min pos.distance;stat.min for cylindrical pos.distance;stat.min for celestial pos.bodyrc.alt;stat.min for body? (from surface only, implicitly from reference level) pos.cartesian.z;stat.min for Cartesian empty ("") for none (and no unit) | Epn.Spatial.Spatial_range.c3min | |||
c3max | Double | (1) | Max of third coordinate | pos;stat.max, etc | Epn.Spatial.Spatial_range.c3max | |||
s_region | spoly | PgSphere spoly | ObsCore-like footprint for celestial, spherical, or body-fixed frames. | phys.outline;obs.field | phys.outline;obs.field | obscore:Char.SpatialAxis.Coverage.Support.Area | (was initially instr.fov, to be corrected) | |
c1_resol_min | Double | (1) | Min resolution in first coordinate | pos.resolution;stat.min pos.angResolution;stat.min | pos.angResolution;stat.min | Epn.Spatial.Spatial_resolution.c1_resol_min | pos.resolution restored in 2018 In body fixed frame, use pixelscale_min/max for resolution at the surface | |
c1_resol_max | Double | (1) | Max resolution in first coordinate | pos.resolution;stat.max pos.angResolution;stat.max | pos.angResolution;stat.max | Epn.Spatial.Spatial_resolution.c1_resol_max | _ | |
c2_resol_min | Double | (1) | Min resolution in second coordinate | pos.resolution;stat.min pos.angResolution;stat.min | Epn.Spatial.Spatial_resolution.c2_resol_min | _ | ||
c2_resol_max | Double | (1) | Max resolution in second coordinate | pos.resolution;stat.max pos.angResolution;stat.max | Epn.Spatial.Spatial_resolution.c2_resol_max | _ | ||
c3_resol_min | Double | (1) | Min resolution in third coordinate | pos.resolution;stat.min | Epn.Spatial.Spatial_resolution.c3_resol_min | pos.resolution restored in 2018 | ||
c3_resol_max | Double | (1) | Max resolution in third coordinate | pos.resolution;stat.max | Epn.Spatial.Spatial_resolution.c3_resol_max | pos.resolution restored in 2018 | ||
spatial_frame_type | Y | Text | (1) Use "none" if undefined | Flavor of coordinate system, defines the nature of coordinates. From enumerated list | meta.code.class;pos.frame | _ | A value is required by DaCHS (query will return errors if empty) | |
incidence_min | Double | deg | Min incidence angle (solar zenithal angle) | pos.incidenceAng;stat.min | _ | Epn.View_angle.Incidence_angle_min | UCD for angles included in 2018 | |
incidence_max | Double | deg | Max incidence angle (solar zenithal angle) | pos.incidenceAng;stat.max | _ | Epn.View_angle.Incidence_angle_max | UCD for angles included in 2018 | |
emergence_min | Double | deg | Min emergence angle | pos.emergenceAng;stat.min | _ | Epn.View_angle.Emergence_angle_min | UCD for angles included in 2018 | |
emergence_max | Double | deg | Max emergence angle | pos.emergenceAng;stat.max | _ | Epn.View_angle.Emergence_angle_max | UCD for angles included in 2018 | |
phase_min | Double | deg | Min phase angle | pos.phaseAng;stat.min | Epn.View_angle.Phase_angle_min | |||
phase_max | Double | deg | Max phase angle | pos.phaseAng;stat.max | Epn.View_angle.Phase_angle_max | |||
instrument_host_name | Text |
| Standard name of the observatory or spacecraft | meta.id;instr.obsty | meta.id;instr.tel | Provenance.ObsConfig.Facility.name | ||
instrument_name | Text |
| Standard name of instrument | meta.id;instr | meta.id;instr | Provenance.ObsConfig.Instrument.name | ||
measurement_type | Text |
| UCD(s) defining the data | meta.ucd | meta.ucd | Epn.Measurement_type | Add ;meta.modelled if simulation or model Add ;stat.uncalib if uncalibrated data | |
processing_level | Integer |
| Use dataset-related value. If none defined, use simplified CODMAC calibration level | meta.calibLevel | meta.code;obs.calib | ~ obscore:ObsDataset.calibLevel | To be replaced by PDS4 values in v2.1? | |
creation_date | Y | Timestamp | (ISO-8601 String) | Date of first entry of this granule | time.creation | time;meta.dataset | ||
modification_date | Y | Timestamp | (ISO-8601 String) | Date of last modification | time.processing | Used to handle mirroring | ||
release_date | Y | Timestamp | (ISO-8601 String) | Start of public access period (set to creation_date if no proprietary period) | time.release | time.release | obscore:Curation.releaseDate | |
service_title | Y | Text |
| Title of resource = schema name | meta.title | May be used to handle multiservice results | ||
Common optional parameters |
|
|
|
| ||||
access_url | Text |
| URL of the data file, case sensitive (additional files may be linked through datalink_url). Can point to a script. If present, next 2 parameters must also be present. | meta.ref.url;meta.file | meta.ref.url | Obs.Access.Reference | Use this to link data! | |
access_format | Text | (mime type in lowercase) | File format type | meta.code.mime | meta.code.mime | Obs.Access.Format | ||
access_estsize | Integer | kbyte | Estimate file size in kbyte (with this spelling) | phys.size;meta.file | phys.size;meta.file | Obs.Access.Size | ||
access_md5 | Text | MD5 Hash for the file when available (real file, not script) | meta.checksum;meta.file | |||||
thumbnail_url | Text |
| URL of a thumbnail image with predefined size (png ~200 pix, for use in a client only) | meta.ref.url;meta.preview | ||||
file_name | Text |
| Name of the data file only, case sensitive | meta.id;meta.file | meta.title;obs — ? | ObsCore obs_title is for a short free text string describing the granule. Do we want this? | ||
datalink_url | Text | (url) | Provides links to files or services on the server | meta.ref.url;meta.datalink | Associated mime-type is 'application/x-votable+xml;content=datalink' (from ObsCore) | |||
species | Text |
| Identifies a chemical species, case sensitive | meta.id;phys.atmol | This is the only case sensitive parameter (with target_name) | |||
waveband | Text | Electro-magnetic band, from enumerated list | instr.bandpass | |||||
alt_target_name | Text | can be a hash list | Provides alternative target name if more common | meta.id;src | ||||
target_region | Text |
| Type of region or feature of interest | obs.field | ||||
feature_name | Text |
| Secondary name | obs.field | ||||
publisher | Text |
| Resource publisher | meta.curation | meta.ref.url;meta.curation | ~ obscore:Curation.publisherID | ||
bib_reference | Text |
| Bibcode preferred if available, doi, or other biblio id, URL... | meta.bib meta.bib.bibcode (if bibcode) | meta.bib.bibcode (always as bibcode) | obscore:Curation.reference | ||
internal_reference | Text | List of granule_uid(s) in the current service | meta.id.cross | Use to link one granule to a set of other granules. To be used only if required - e.g. to solve situations that would otherwise require several tables | ||||
external_link | Text | (url) | Link to a web page providing more details on the granule. | meta.ref.url | Link to an individual page in a web site associated to the database, e.g., a planet page in Exoplanets service. This is a way to provide extra granule information which cannot be accommodated in the table. | |||
spatial_coordinate_description | Text |
| ID of specific coordinate system and version / properties | meta.code.class;pos.frame | ~COOSYS, but includes planetary ones | |||
spatial_origin | Text |
| Defines the frame origin | meta.ref;pos.frame | ||||
time_origin | Text |
| Defines where the time is measured (e. g., ground vs spacecraft) | meta.ref;time.scale | target_time is of course always on target. | |||
time_scale | Text |
| Always UTC in data services - from enumerated list | time.scale | ||||
subsolar_longitude | Double | deg | Sub-solar point longitude | pos.bodyrc.lon;stat.min | Provided in the most natural body-related coordinate frame, E-handed - seems to require 'body' No min/max here | |||
subsolar_latitude | Double | deg | Sub-solar point latitude | pos.bodyrc.lat;stat.min | _ | |||
subobserver_longitude | Double | deg | Sub-observer point longitude (sub-Earth for ground based observations) | pos.bodyrc.lon;stat.min | _ | |||
subobserver_latitude | Double | deg | Sub-observer point latitude (sub-Earth for ground based observations) | pos.bodyrc.lat;stat.min | _ | |||
ra | Double | deg only (like ObsCore) | Right ascension (not hour angle!) | pos.eq.ra;meta.main | ||||
dec | Double | deg | Declination | pos.eq.dec;meta.main | ||||
radial_distance_min | Double | km | Min distance from center (in body-fixed frame) | pos.distance;pos.bodyrc;stat.min | ||||
radial_distance_max | Double | km | Max distance from center (in body-fixed frame) | pos.distance;pos.bodyrc;stat.max | ||||
altitude_fromshape_min | Double | km | Min altitude above shape model / DTM (in body-fixed frame) | pos.bodyrc.alt;stat.min | ||||
altitude_fromshape_max | Double | km | Max altitude above shape model / DTM (in body-fixed frame) | pos.bodyrc.alt;stat.max | ||||
solar_longitude_min | Double | deg | Min Solar longitude Ls (location on orbit / season) | pos.ecliptic.lon;pos.heliocentric;stat.min | ||||
solar_longitude_max | Double | deg | Max Solar longitude Ls (location on orbit / season) | pos.ecliptic.lon;pos.heliocentric;stat.max | ||||
local_time_min | Double | h | Min local time at observed region | time.period.rotation;time.phase;stat.min | ||||
local_time_max | Double | h | Max local time at observed region | time.period.rotation;time.phase;stat.max | ||||
target_distance_min | Double | km | Min observer-target distance | pos.distance;stat.min | ||||
target_distance_max | Double | km | Max observer-target distance | pos.distance;stat.max | ||||
target_time_min | Double | d | Min observing time in target frame | time.start | (simplest way to look for coordinated observations) | |||
target_time_max | Double | d | Max observing time in target frame | time.end | ||||
earth_distance_min | Double | au | Min Earth-target distance | pos.distance;stat.min | ||||
earth_distance_max | Double | au | Max Earth-target distance | pos.distance;stat.max | ||||
sun_distance_min | Double | au | Min Sun-target distance | pos.distance;stat.min | ||||
sun_distance_max | Double | au | Max Sun-target distance | pos.distance;stat.max | ||||
Parameters from extensions | ||||||||
obs_mode | Text | Observing mode | meta.code;instr.setup | |||||
detector_name | Text | Detector name | meta.id;instr.det | From APIS + observation extensions (UCDs adapted later) | ||||
opt_elem | Text | Optical element name | meta.id;instr.param | |||||
filter | Text | Identifies filter in use, typically for images. | meta.id;instr.filter | Informative only, free format (no list, but see http://svo2.cab.inta-csic.es/svo/theory/fps3/). Search can only rely on spectral range, as ObsCore does. | ||||
instrument_type | Text | type of instrument | meta.id;instr | To be used with caution: free format, no reference list intended. | ||||
acquisition_id | Text | ID of the data file/acquisition in the original archive | meta.id | |||||
proposal_id | Integer | Proposal identifier | meta.id;obs.proposal | |||||
proposal_pi | text | Proposal principal investigator | meta.id.PI;obs.proposal | |||||
proposal_title | Text | Proposal title | meta.title;obs.proposal | |||||
campaign | Text | Name of the observational campaign | meta.id;meta.code | |||||
target_description | Text | Original target keywords | meta.note;src | |||||
proposal_target_name | Text | target name as in proposal title | meta.note;obs.proposal | |||||
target_apparent_radius | Double | Apparent radius of the target | phys.angSize;src | |||||
north_pole_position | Double | North pole position angle with respect to celestial north pole | pos.angDistance | |||||
target_primary_hemisphere | Text | Primary observed hemisphere | meta.id;obs.field | |||||
target_secondary_hemisphere | Text | Secondary observed hemisphere | meta.id;obs.field | |||||
platesc | Double | spatial resolution per pixel or platescale (on sky only) | pos.angResolution | |||||
orientation | Double | Position angle of image y axis (on sky only) | pos.posAng | |||||
observer_name | Text | Observer name | obs.observer;meta.main | |||||
observer_institute | Text | Observer institute | meta.note;meta.main | |||||
observer_id | Integer | Image observer's PVOL numeric identifier | meta.id.PI | Group of 5 from PVOL, UCDs are wrong | ||||
observer_code | Text | Image observer's PVOL username | meta.id.PI | meta.pubcode | ||||
observer_country | Text | Image observer's country of residence | meta.note;obs.observer | meta.pubcountry | ||||
observer_lon | Double | Observer's approximate longitude | obs.observer;pos.earth.lon | meta.publon | ||||
observer_lat | Double | Observer's approximate latitude | obs.observer;pos.earth.lat | meta.publat | ||||
mass | Double | kg | Mass of object | phys.mass | Solar System Objects extension (generic values in catalogues, not observations) | |||
sideral_rotation_period | Double | h | Object rotation rate | time.period.rotation | ||||
mean_radius | Double | km | phys.size.radius | |||||
equatorial_radius | Double | km | phys.size.radius | |||||
polar_radius | Double | km | phys.size.radius | |||||
diameter | double | km | Target diameter, or equivalent diameter for binary objects | phys.size.diameter | Used in tnosarecool, not very consistent (use radius?) | |||
semi_major_axis | Double | au | phys.size.smajAxis | |||||
inclination | Double | Orbit inclination | src.orbital.inclination | |||||
eccentricity | Double | Orbit eccentricity | src.orbital.eccentricity | |||||
long_asc | Double | deg | Longitude of ascending node, J2000.0 | src.orbital.node | ||||
arg_perihel | Double | deg | Argument of Perihelion, J2000.0 | src.orbital.periastron | ||||
mean_anomaly | Double | deg | Mean anomaly at the epoch | src.orbital.meanAnomaly | ||||
dynamical_class | Text | Class of small body, from enumerated list | meta.code.class | |||||
dynamical_type | Text | Subdivision of the class, from enumerated list | meta.code.class | |||||
taxonomy_code | Text | Code for target taxonomy | src.class.color | Values depend on target type and possibly service | ||||
magnitude | Double | mag | Absolute magnitude. For small bodies, from HG magnitude system | phys.magAbs | Actually depends on service (eg, spectro_planets vs DynAstVO vs tnosarecool) | |||
flux | Double | mJy | Target flux | phot.flux.density | ||||
albedo | Double | Target albedo | phys.albedo | |||||
map_projection | Text | ID from enumerated list | pos.projection | Map extension | ||||
map_height | Double | pixel | Map size in px | phys.size | ||||
map_width | Double | pixel | Map size in px | phys.size | ||||
map_scale | Text | Format TBD | pos.wcs.scale? | |||||
pixelscale_min | Double | km/pixel | Min pixel size on a surface | instr.scale;stat.min | ||||
pixelscale_max | Double | km/pixel | Max pixel size on a surface | instr.scale;stat.max | ||||
particle_spectral_type | Text |
|
| meta.id;phys.particle | Particle spectroscopy extension | |||
particle_spectral_range_min | Double |
|
| phys.energy;phys.particle;stat.min phys.mass;phys.particle;stat.min | ||||
particle_spectral_range_max | Double |
|
| phys.energy;phys.particle;stat.max phys.mass;phys.particle;stat.max | ||||
particle_spectral_sampling_step_min | Double |
|
| spect.resolution;phys.particle;stat.min | ||||
particle_spectral_sampling_step_max | Double |
|
| spect.resolution;phys.particle;stat.max | ||||
particle_spectral_resolution_min | Double |
|
| spect.resolution;phys.particle;stat.min | ||||
particle_spectral_resolution_max | Double |
|
| spect.resolution;phys.particle;stat.max | ||||
original_publisher | Text | Refers to the source of the data, especially in compilations of experimental data | meta.note;meta.main | Experiment spectroscopy + contributive work extensions | ||||
producer_name | Text | Data producer name, especially in compilations of experimental data | meta.note;meta.main | |||||
producer_institute | Text | Data producer institute, especially in compilations of experimental data | meta.note;meta.main | |||||
sample_classification | Text | hash list | Information related to class, sub-class, species… (using standard names) | meta.note;phys.composition | ||||
sample_desc | Text | can be a hash list | Describes the sample, its origin, and possible preparation | meta.note | ||||
data_calibration_desc | Text | can be a hash list | Provides information on post-processing | meta.note | (preferably to a "comment" parameter) | |||
setup_desc | Text | can be a hash list | Describes the experimental setup if needed - may include Aperture (size of sample measured), etc | meta.note | ||||
geometry_type | Text | Type of observation (such as bidirectional, biconical, directional-hemispherical, etc) | meta.note | |||||
grain_size_min | Double | µm | Min particle size in µm | phys.size;stat.min | ||||
grain_size_max | Double | Max particle size in µm | phys.size;stat.max | |||||
azimuth_min | Double | deg | Min azimuth angle for illumination | pos.azimuth;stat.min | Check meaning/requirements for <0 values? | |||
azimuth_max | Double | deg | Max azimuth angle for illumination | pos.azimuth;stat.max | UCD added in 2018 | |||
pressure | Double | bar | Ambient pressure | phys.pressure | VOunits says: Pascal. But this is in files | |||
measurement_atmosphere | text | Describes experimental conditions. "vacuum" for measurements under vacuum. | meta.note;phys.pressure | |||||
temperature | Double | K | Ambient temperature | phys.temperature | ||||
event_type | Text | Type of event from enumerated list (e. g., meteor_shower, fireball, lunar_flash, comet_tail_crossing…) | TBD | Events extension | ||||
event_status | Text | From enumerated list | TBD | |||||
event_cite | Text | From enumerated list | TBD |
(1): depending on context (as given by spatial_frame_type). Please comment here: EPN-TAP v2: Current discussion topic
Beware that datatypes apply to the epn_core view, not to the q.rd file where they can be different
Example table for IDs:
File name-type | granule_uid | granule_gid | obs_id |
A-Raw | 1 | native | A |
A-Calib | 2 | calibrated | A |
A-geom | 3 | geometry | A |
A-proj | 4 | projected | A |
B-Raw | 5 | native | B |
B-Calib | 6 | calibrated | B |
B-geom | 7 | geometry | B |
B-proj | 8 | projected | B |
Syntax
• multivalued lists = first entry#second entry#…#last entry, or scalar (with no #)
Values separator = #
No quotes around the list
This can be parsed by ADQL/RegTAP function ivo_hashlist_has like this:
select * from vvex.epn_core where 1 = ivo_hashlist_has(lower(target_name),'Venus')
Where the lower function is mandatory to handle values possibly containing upper cases (this is implicit on the 2nd argument)
Beware that only complete elements between separators will be found. The provider has to split the string according to expected searches, e.g.:
Composite Infrared Spectrometer#CIRS
not Composite Infrared Spectrometer (CIRS)
Parameters supporting multivalued lists include:
dataproduct_type (only when present in the same file; best avoided when possible)
target_name (but only one can be described in the granule)
alt_target_name
target_class
instrument_host_name
instrument_name (e.g. acronym and full name)
measurement_type
bib_reference
processing_level (when present in the same file)
• NULL and special values:
A standard query on a parameter will not return granules with NULL/void value. E.g. target_name LIKE '%toto%' will only select granules with this value (standard ADQL behavior).
NULL/void has to be tested specifically (e.g., when it means "I don't know"):
target_name LIKE '%toto%' OR target_name is NULL
Operator IS also stands for numerical parameters (= accepted by latest DaCHS servers only)
No inf, -inf, or NaN value in ADQL? Should be there, as per DALI.
• UCDs: the above table has been reviewed against the UCD documents, including latest discussions (4/2019). Review against PDS4 and IPDA to be performed.
2018 discussions / conclusions have been included here: https://wiki.ivoa.net/twiki/bin/view/IVOA/UCDList1dot42017June2018FebRFM
• min vs max:
If only one value available, it must appear in both fields
• Optional parameters: they come in sets that are logically related; if one is present, the related ones must be present also (e.g., 3 access_* parameters)
• Granule_gid: any general indication to providers? I.e.: preview, native, calibrated, geometry…
A client should be able to display the values present in a service, TBC (feasible in TOPCAT)
• Reshuffle previous "service parameters":
- Mandatory :
processing_level -mandatory
service_title –mandatory
publisher -mandatory???
add publisher_did as in Obscore (for Dachs/registry) - Optional - TBC
spatial_coordinate_description (default = none)
spatial_origin (default = body center or SS barycenter? Or observer location)
time_origin (default = observer)
time_scale (default = UTC – no other values allowed in data services? [only in computational services, e.g. ephemeris])
Same values to be used in registry declaration
• Support for PDS3 detached labels (proposal)
Solution with datalink seems OK: detached labels provided under datalink_url in a table - although no attempt made to read them from the portal, yet (use VIR unpublished service to test this).
• Utypes
Need to clean up current doc (2.0). Utypes are = DM fields. They are supposedly used to identify the meaning of parameters and help e.g. tools to grab required quantities - This will not work in some areas though, e. g. with spectral tools as they currently use UCD instead of Utype for this purpose (not many tools appear to actually rely on Utype in fact). See discussion here for usage (a bit old?): http://www.ivoa.net/documents/Notes/UTypesUsage/20130213/NOTE-utypes-usage-1.0-20130213.html
To handle this in practice:
- Associate each parameter to a specific Utype in EPNCore - all names need to start with the epncore: prefix/namespace.
- Then map epncore Utype to other DM (find equivalent parameter, or trace back the original templates of EPNCore parameters - often from ObsCore)
- Reuse Utype from other DM each times it makes sense - TBC: the epncore: namespace is still required (even when using Utypes from other DM)
This allows tools to handle EPNCore parameters like existing parameters from other DM, i.e., with no specific implementation
Pb is that small differences in the use of parameters may preclude reusing the same Utype (TBC: does that applies to units also?) - Cross our fingers: known Utype (from other DMs) may be usable in existing tools (e.g. a tool supporting Provenance would grab equivalent info in EPN-TAP services transparently)
Unclear if the use of the namespace makes it more complicated in tools.
Example of V2 with APIS database:
EPNcore Table v2
granule_uid | granule_gid | obs_id | access_url | access_format | thumbnail_url |
---|---|---|---|---|---|
o5g202x4q_x2d | original_data | o5g202x4q | o5g202x4q_x2d.fits | image/fits | o5g202x4q_x2d_small.jpg |
o5g202x4q_x2d_prev | original_data_preview | o5g202x4q | o5g202x4q_x2d.jpg | image/jpg | o5g202x4q_x2d_small.jpg |
o5g202x4q_proc | processed_data | o5g202x4q | o5g202x4q_proc.fits | image/fits | o5g202x4q_proc_small.jpg |
o5g202x4q_proc_prev | processed_data_preview | o5g202x4q | o5g202x4q_proc.jpg | image/jpg | o5g202x4q_proc_small.jpg |
o5g202x4q_cyl | cylindrical_projection | o5g202x4q | o5g202x4q_cyl.jpg | image/jpg | o5g202x4q_cyl_small.jpg |
o5g202x4q_pol_n | polar_projection_north | o5g202x4q | o5g202x4q_pol_n.jpg | image/jpg | o5g202x4q_pol_n_small.jpg |
o5g202x4q_pol_s | polar_projection_south | o5g202x4q | o5g202x4q_pol_s.jpg | image/jpg | o5g202x4q_pol_s_small.jpg |