From 260c559f71b65e74dc3129785a9f0e5b84a50368 Mon Sep 17 00:00:00 2001 From: Nathanael Jourdane Date: Mon, 9 May 2016 14:51:00 +0200 Subject: [PATCH] Add the Granule enumeration. --- src/main/java/eu/omp/irap/vespa/epntapclient/granule/GranuleEnum.java | 141 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+), 0 deletions(-) create mode 100644 src/main/java/eu/omp/irap/vespa/epntapclient/granule/GranuleEnum.java diff --git a/src/main/java/eu/omp/irap/vespa/epntapclient/granule/GranuleEnum.java b/src/main/java/eu/omp/irap/vespa/epntapclient/granule/GranuleEnum.java new file mode 100644 index 0000000..20bd86b --- /dev/null +++ b/src/main/java/eu/omp/irap/vespa/epntapclient/granule/GranuleEnum.java @@ -0,0 +1,141 @@ +/* + * This file is a part of EpnTAPClient. + * This program aims to provide EPN-TAP support for software clients, like CASSIS spectrum analyzer. + * See draft specifications: https://voparis-confluence.obspm.fr/pages/viewpage.action?pageId=559861 + * Copyright (C) 2016 Institut de Recherche en Astrophysique et Planétologie. + * + * This program is free software: you can + * redistribute it and/or modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation, either version 3 of the License, or (at your option) any later + * version. This program is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. You should have received a copy of + * the GNU General Public License along with this program. If not, see + * . + */ + +package eu.omp.irap.vespa.epntapclient.granule; + +import java.util.Date; + +/** + * Enumeration list generated with the Python script in main/resources/scripts. + * + * @author N. Jourdane + */ +public enum GranuleEnum { + + //@noformat + GRANULE_UID("granule_uid", String.class, true, true, "", "meta.id", ""), + GRANULE_GID("granule_gid", String.class, true, true, "", "meta.id", "Common to granules of same type (e.g. same map projection, or geometry data products). Can be alphanum."), + OBS_ID("obs_id", String.class, true, true, "", "meta.id", "Associates granules derived from the same data (e.g. various representations / processing levels). Can be alphanum., may be the ID of original observation."), + DATAPRODUCT_TYPE("dataproduct_type", String.class, true, true, "", "meta.code.class", "Organization of the data product, from enumerated list"), + TARGET_NAME("target_name", String.class, true, true, "", "meta.id;src", "Standard IAU name of target (from a list related to target class), case sensitive"), + TARGET_CLASS("target_class", String.class, true, true, "", "meta.code.class;src", "Type of target, from enumerated list"), + TIME_MIN("time_min", Double.class, true, false, "d (date as JD)", "time.start", ""), + TIME_MAX("time_max", Double.class, true, false, "d (date as JD)", "time.end", ""), + TIME_SAMPLING_STEP_MIN("time_sampling_step_min", Double.class, true, false, "s", "time.interval;stat.min", "Min time sampling step"), + TIME_SAMPLING_STEP_MAX("time_sampling_step_max", Double.class, true, false, "s", "time.interval;stat.max", "Max time sampling step"), + TIME_EXP_MIN("time_exp_min", Double.class, true, false, "s", "", "Min integration time"), + TIME_EXP_MAX("time_exp_max", Double.class, true, false, "s", "time.duration;obs.exposure;stat.max", "Max integration time"), + SPECTRAL_RANGE_MIN("spectral_range_min", Double.class, true, false, "Hz", "em.freq;stat.min", "Min spectral range (frequency)"), + SPECTRAL_RANGE_MAX("spectral_range_max", Double.class, true, false, "Hz", "em.freq;stat.max", "Max spectral range (frequency)"), + SPECTRAL_SAMPLING_STEP_MIN("spectral_sampling_step_min", Double.class, true, false, "Hz", "", "Min spectral sampling step"), + SPECTRAL_SAMPLING_STEP_MAX("spectral_sampling_step_max", Double.class, true, false, "Hz", "", "Max spectral sampling step"), + SPECTRAL_RESOLUTION_MIN("spectral_resolution_min", Double.class, true, false, "Hz", "spect.resolution;stat.min", ""), + SPECTRAL_RESOLUTION_MAX("spectral_resolution_max", Double.class, true, false, "Hz", "spect.resolution;stat.max", "Max spectral resolution"), + C1MIN("c1min", Double.class, true, false, "", "pos;stat.min", "Min of first coordinate"), + C1MAX("c1max", Double.class, true, false, "", "pos;stat.max", "Max of first coordinate"), + C2MIN("c2min", Double.class, true, false, "", "pos;stat.min", "Min of second coordinate"), + C2MAX("c2max", Double.class, true, false, "", "pos;stat.max", "Max of second coordinate"), + C3MIN("c3min", Double.class, true, false, "", "pos;stat.min", "Min of third coordinate"), + C3MAX("c3max", Double.class, true, false, "", "pos;stat.max", "Max of third coordinate"), + S_REGION("s_region", String.class, true, false, "", "instr.fov", "ObsCore-like footprint, assume spatial_coordinate_description"), + C1_RESOL_MIN("c1_resol_min", Double.class, true, false, "", "", "Min resolution in first coordinate"), + C1_RESOL_MAX("c1_resol_max", Double.class, true, false, "", "pos.resolution;stat.max", "Max resolution in first coordinate"), + C2_RESOL_MIN("c2_resol_min", Double.class, true, false, "", "pos.resolution;stat.min", "Min resolution in second coordinate"), + C2_RESOL_MAX("c2_resol_max", Double.class, true, false, "", "pos.resolution;stat.max", "Max resolution in second coordinate"), + C3_RESOL_MIN("c3_resol_min", Double.class, true, false, "", "pos.resolution;stat.min", "Min resolution in third coordinate"), + C3_RESOL_MAX("c3_resol_max", Double.class, true, false, "", "pos.resolution;stat.max", "Max resolution in third coordinate"), + SPATIAL_FRAME_TYPE("spatial_frame_type", String.class, true, false, "", "meta.code.class;pos.frame", "Flavor of coordinate system, defines the nature of coordinates. From enumerated list"), + INCIDENCE_MIN("incidence_min", Double.class, true, false, "deg", "pos.posAng;stat.min", "Min incidence angle (solar zenithal angle)"), + INCIDENCE_MAX("incidence_max", Double.class, true, false, "deg", "pos.posAng;stat.max", "Max incidence angle (solar zenithal angle)"), + EMERGENCE_MIN("emergence_min", Double.class, true, false, "deg", "pos.posAng;stat.min", "Min emergence angle"), + EMERGENCE_MAX("emergence_max", Double.class, true, false, "deg", "pos.posAng;stat.max", "Max emergence angle"), + PHASE_MIN("phase_min", Double.class, true, false, "deg", "pos.phaseAng;stat.min", "Min phase angle"), + PHASE_MAX("phase_max", Double.class, true, false, "deg", "pos.phaseAng;stat.max", "Max phase angle"), + INSTRUMENT_HOST_NAME("instrument_host_name", String.class, true, false, "", "", "Standard name of the observatory or spacecraft"), + INSTRUMENT_NAME("instrument_name", String.class, true, false, "", "meta.id;instr", "Standard name of instrument"), + MEASUREMENT_TYPE("measurement_type", String.class, true, false, "", "meta.ucd", "UCD(s) defining the data"), + PROCESSING_LEVEL("processing_level", Integer.class, true, false, "", "meta.code;obs.calib", "CODMAC calibration level in v1"), + CREATION_DATE("creation_date", Date.class, true, true, "", "time.creation", "Date of first entry of this granule"), + MODIFICATION_DATE("modification_date", Date.class, true, true, "", "time.update", "Date of last modification (used to handle mirroring)"), + RELEASE_DATE("release_date", Date.class, true, true, "", "time.release", ""), + SERVICE_TITLE("service_title", String.class, true, true, "", "meta.title", ""), + ACCESS_URL("access_url", String.class, false, false, "", "meta.ref.url;meta.file", ""), + ACCESS_FORMAT("access_format", String.class, false, false, "", "meta.code.mime", ""), + ACCESS_ESTSIZE("access_estsize", Integer.class, false, false, "kbyte", "", "Estimate file size in kbyte (with this spelling)"), + DATA_ACCESS_URL("data_access_url", String.class, false, false, "", "", "If access_format indicates a detached label, this parameter is mandatory and points to the corresponding data file - both will be handled by the client before samping it to tools or downloading"), + ACCESS_MD5("access_md5", String.class, false, false, "", "", "MD5 Hash for the file when available (real file)"), + THUMBNAIL_URL("thumbnail_url", String.class, false, false, "", "meta.ref.url;meta.file", "URL of a thumbnail image with predefined size (png ~200 pix, for use in a client only)"), + FILE_NAME("file_name", String.class, false, false, "", "meta.id;meta.file", "Name of the data file only, case sensitive"), + SPECIES("species", String.class, false, false, "", "meta.id;phys.atmol", "Identifies a chemical species, case sensitive"), + ALT_TARGET_NAME("alt_target_name", String.class, false, false, "", "meta.id;src", "Provides alternative target name if more common (e.g. comets)"), + TARGET_REGION("target_region", String.class, false, false, "", "meta.id;class", ""), + FEATURE_NAME("feature_name", String.class, false, false, "", "meta.id;pos", ""), + BIB_REFERENCE("bib_reference", String.class, false, false, "", "meta.bib", "Bibcode, doi, or other biblio id, URL"), + RA("ra", Double.class, false, false, "deg or h:m:s?", "pos.eq.ra;meta.main", ""), + DEC("dec", Double.class, false, false, "deg", "pos.eq.dec;meta.main", "Declination"), + SOLAR_LONGITUDE_MIN("solar_longitude_min", Double.class, false, false, "deg", "pos.posangle (TBC)", "Min Solar longitude Ls (location on orbit / season)"), + SOLAR_LONGITUDE_MAX("solar_longitude_max", Double.class, false, false, "deg", "pos.posangle (TBC)", "Max Solar longitude Ls (location on orbit / season)"), + LOCAL_TIME_MIN("local_time_min", Double.class, false, false, "h", "time.phase;stat.min?", "Local time at observed region"), + LOCAL_TIME_MAX("local_time_max", Double.class, false, false, "h", "time.phase;stat.max?", "Local time at observed region"), + TARGET_DISTANCE_MIN("target_distance_min", Double.class, false, false, "km", "pos.distance;stat.min", "Observer-target distance"), + TARGET_DISTANCE_MAX("target_distance_max", Double.class, false, false, "km", "pos.distance;stat.max", "Observer-target distance"), + TARGET_TIME_MIN("target_time_min", Double.class, false, false, "d", "", ""), + TARGET_TIME_MAX("target_time_max", Double.class, false, false, "d", "", ""), + PARTICLE_SPECTRAL_TYPE("particle_spectral_type", String.class, false, false, "", "", ""), + PARTICLE_SPECTRAL_RANGE_MIN("particle_spectral_range_min", Double.class, false, false, "", "", ""), + PARTICLE_SPECTRAL_RANGE_MAX("particle_spectral_range_max", Double.class, false, false, "", "", ""), + PARTICLE_SPECTRAL_SAMPLING_STEP_MIN("particle_spectral_sampling_step_min", Double.class, false, false, "", "", ""), + PARTICLE_SPECTRAL_SAMPLING_STEP_MAX("particle_spectral_sampling_step_max", Double.class, false, false, "", "", ""), + PARTICLE_SPECTRAL_RESOLUTION_MIN("particle_spectral_resolution_min", Double.class, false, false, "", "spect.resolution;stat.min", ""), + PARTICLE_SPECTRAL_RESOLUTION_MAX("particle_spectral_resolution_max", Double.class, false, false, "", "spect.resolution;stat.max", ""), + PUBLISHER("publisher", String.class, false, false, "", "meta.name", "Resource publisher"), + SPATIAL_COORDINATE_DESCRIPTION("spatial_coordinate_description", String.class, false, false, "", "", "ID of specific coordinate system and version"), + SPATIAL_ORIGIN("spatial_origin", String.class, false, false, "", "meta.ref;pos.frame", "Defines the frame origin"), + TIME_ORIGIN("time_origin", String.class, false, false, "", "", ""), + TIME_SCALE("time_scale", String.class, false, false, "", "time.scale", ""); + //@format + + private String name; + + private Class type; + + private boolean isMandatory; + + private boolean mustbeFilled; + + private String unit; + + private String ucd; + + private String description; + + + GranuleEnum(String name, Class type, boolean isMandatory, boolean mustBeFilled, String unit, + String ucd, String description) { + this.name = name; + this.type = type; + this.isMandatory = isMandatory; + mustbeFilled = mustBeFilled; + this.unit = unit; + this.ucd = ucd; + this.description = description; + } + + @Override + public String toString() { + return name; + } +} -- libgit2 0.21.2