Commit d9cd2b5bd6183f4b0e51a49d6c272f497cbf33b5
1 parent
5cedf9ee
Exists in
master
modifie q.rd de planets
Showing
1 changed file
with
94 additions
and
5 deletions
Show diff stats
services/planets/q.rd
1 | 1 | <resource schema="planets"> |
2 | 2 | <meta name="title">Characteristics of Planets (demo)</meta> |
3 | + <meta name="shortname">Planets</meta> | |
4 | + <meta name="shortName">Planets</meta> | |
3 | 5 | <meta name="description" format="plain"> |
4 | 6 | Demonstration service of EPN-TAP v1: main characteristics of planets. Data are included in the table, therefore most relevant parameters are non-standard in EPN-TAP. Data are retrieved from Archinal et al 2009 (IAU report, 2011CeMDA.109..101A) [radii] and Cox et al 2000 (Allen's astrophysical quantities, 2000asqu.book.....C) [masses, heliocentric distances, and rotation periods]. </meta> |
5 | 7 | <meta name="creationDate">2015-08-16T09:42:00Z</meta> |
... | ... | @@ -126,7 +128,7 @@ Demonstration service of EPN-TAP v1: main characteristics of planets. Data are i |
126 | 128 | <make table="epn_core"> |
127 | 129 | <rowmaker idmaps="*"> |
128 | 130 | <var key="dataproduct_type">"ci"</var> |
129 | - <var key="spatial_frame_type">"celestial"</var> | |
131 | + <var key="spatial_frame_type">"none"</var> | |
130 | 132 | |
131 | 133 | <var key="target_name" source="target_name" /> |
132 | 134 | <var key="granule_uid" source="target_name" /> |
... | ... | @@ -145,8 +147,14 @@ Demonstration service of EPN-TAP v1: main characteristics of planets. Data are i |
145 | 147 | <var key="service_title">"planets" </var> |
146 | 148 | <var key="bib_reference">"2011CeMDA.109..101A#2000asqu.book.....C"</var> |
147 | 149 | <var key="publisher">"LESIA" </var> |
148 | - <var key="target_class">"planet"</var> | |
150 | + <var key="target_class">"planet"</var> | |
149 | 151 | |
152 | + <!-- the id for our datalink services is artificial: it's | |
153 | + just the concatenation of the object class and the object name | |
154 | + --> | |
155 | + <var key="ds_id">@target_class+"/"+@target_name</var> | |
156 | + <var key="datalink_url">("\getConfig{web}{serverURL}/\rdId/epdl/dlmeta" | |
157 | + +"?ID="+urllib.parse.quote(@ds_id))</var> | |
150 | 158 | |
151 | 159 | <apply procDef="//epntap2#populate-2_0" name="fillepn"> |
152 | 160 | <bind name="granule_gid">@granule_gid</bind> |
... | ... | @@ -154,12 +162,18 @@ Demonstration service of EPN-TAP v1: main characteristics of planets. Data are i |
154 | 162 | <bind name="obs_id">@obs_id</bind> |
155 | 163 | <bind name="target_class">@target_class</bind> |
156 | 164 | <bind name="time_scale">"UTC"</bind> |
165 | + | |
157 | 166 | <bind name="target_name">@target_name</bind> |
158 | 167 | <bind name="instrument_host_name">""</bind> |
159 | 168 | <bind name="instrument_name">""</bind> |
169 | + | |
170 | + | |
160 | 171 | <bind key="processing_level">5</bind> |
172 | + | |
161 | 173 | <bind name="dataproduct_type">@dataproduct_type</bind> |
162 | 174 | <bind name="measurement_type">"phys.mass#phys.size.radius"</bind> |
175 | + | |
176 | + | |
163 | 177 | <bind name="service_title">@service_title</bind> |
164 | 178 | <bind name="creation_date">@creation_date</bind> |
165 | 179 | <bind name="modification_date">@modification_date</bind> |
... | ... | @@ -171,8 +185,83 @@ Demonstration service of EPN-TAP v1: main characteristics of planets. Data are i |
171 | 185 | </make> |
172 | 186 | </data> |
173 | 187 | |
174 | - <data id="collection" auto="false"> | |
175 | - <make table="epn_core"/> | |
176 | - <publish/> | |
188 | + <service id="epdl" allowed="dlget,dlmeta"> | |
189 | + <datalinkCore> | |
190 | + <metaMaker> | |
191 | + <code> | |
192 | + yield MS(InputKey, name="epoch", | |
193 | + type="double precision", | |
194 | + unit="d", ucd="meta.epoch", | |
195 | + description="Time the ephemeris is to be computed for, JD", | |
196 | + multiplicity="forced-single", | |
197 | + values=MS(Values, | |
198 | + min=2400000, | |
199 | + max=3000000)) | |
200 | + </code> | |
201 | + </metaMaker> | |
202 | + | |
203 | + <metaMaker> | |
204 | + <code> | |
205 | + with base.getTableConn() as conn: | |
206 | + url = list(conn.query("SELECT thumbnail_url from \schema.epn_core where" | |
207 | + " target_class=%(targetClass)s and target_name=%(targetName)s", { | |
208 | + "targetClass": descriptor.targetClass, | |
209 | + "targetName": descriptor.targetName}))[0][0] | |
210 | + yield LinkDef(descriptor.pubDID, | |
211 | + url, | |
212 | + description="A preview of the planet", | |
213 | + semantics="#preview", | |
214 | + contentType="image/jpeg") | |
215 | + </code> | |
216 | + </metaMaker> | |
217 | + | |
218 | + <descriptorGenerator> | |
219 | + <setup> | |
220 | + <code> | |
221 | + class PlanetDescriptor(object): | |
222 | + def __init__(self, pubDID): | |
223 | + self.pubDID = pubDID | |
224 | + self.targetClass, self.targetName = self.pubDID.split("/", 1) | |
225 | + self.computeEphemerisId() | |
226 | + | |
227 | + def computeEphemerisId(self): | |
228 | + shortClass = { | |
229 | + 'planet': 'p', | |
230 | + 'satellite': 's', | |
231 | + }[self.targetClass] | |
232 | + self.ephId = "{}:{}".format( | |
233 | + shortClass, self.targetName) | |
234 | + description="computed ephemeris of the planet", | |
235 | + </code> | |
236 | + </setup> | |
237 | + <code> | |
238 | + return PlanetDescriptor(pubDID) | |
239 | + </code> | |
240 | + </descriptorGenerator> | |
241 | + | |
242 | + <dataFunction> | |
243 | + <setup> | |
244 | + <par name="upstream_service_url" | |
245 | + >"http://vo.imcce.fr/webservices/miriade/ephemcc_query.php?-from=vespa&"</par> | |
246 | + <code> | |
247 | + | |
248 | + from urllib.parse import urlencode | |
249 | + from gavo.svcs import WebRedirect | |
250 | + import urllib.parse | |
251 | + </code> | |
252 | + </setup> | |
253 | + <code> | |
254 | + parameters = { | |
255 | + "-name": descriptor.ephId, | |
256 | + "-ep": args["epoch"], | |
257 | + } | |
258 | + raise WebRedirect(upstream_service_url+urlencode(parameters)) | |
259 | + </code> | |
260 | + </dataFunction> | |
261 | + </datalinkCore> | |
262 | + </service> | |
263 | + <data id="collection" auto="false"> | |
264 | + <make table="epn_core"/> | |
265 | + <publish/> | |
177 | 266 | </data> |
178 | 267 | </resource> | ... | ... |