-
Notifications
You must be signed in to change notification settings - Fork 1
demo client API
The OpenQuake django server application exposes the following set of api endpoints for use by the GeoExt client.
^mtapi/ ^input_upload/$
^mtapi/ ^input_upload_result/$
^mtapi/ ^hazard_risk_calc/$
^mtapi/ ^hazard_risk_result/$
Allows the user to upload a NRML file with seismic input model data. Makes use of a multipart/form-data
Form parameters:
- input_files: as described here
The content type of the returned data needs to be text/html.
http://openquake.gemsun02.ethz.ch/mtapi/input_upload/
{ "status": "success", "msg": "Upload processing started", "id": 22 }
Allows clients to obtain the results of the given seismic input upload/
http://openquake.gemsun02.ethz.ch/mtapi/input_upload_result/123/
{"status": "success", "msg": "All uploaded files processed", "id": 123,
"files": [{"id": 1, "name": "src-a.xml"}, {"id": 2, "name": "src-b.xml"}]}
or
{"status": "failure", "msg": "Processing of uploaded files failed",
"id": 123}
Response codes:
- 404: when result not available yet
- 200: when the result is available
- 500: in case of failure
Allows the user to start a combined hazard/risk OpenQuake engine calculation given the chosen geometry and a small selection of calculation parameters.
Once the OpenQuake engine completes the calculation, the hazard and loss map data will be written to the hazard_map_data
and loss_map_data
database tables respectively.
TODO:
- what hazard/risk calculation parameters should be supported by the GUI?
http://openquake.gemsun02.ethz.ch/mtapi/hazard_risk_calc/
{
"model": "mtapi.calculationparams",
"upload": 22,
"fields": {
"job_type": "classical",
"region_grid_spacing": 0.1,
"min_magnitude": 6.1,
"investigation_time": 50.0,
"component": "average",
"imt": "pga",
"period": 12.0,
"truncation_type": "none",
"truncation_level": 1.0,
"reference_vs30_value": 10.0,
"imls": [1.0, 2.0, 3.0],
"poes": [1.0, 2.0, 3.0],
"realizations": 2,
"histories": 5,
"gm_correlated": false,
"region": "POLYGON((-180 -90,180 -90,180 90,-180 90,-180 -90))"
}
}
Please note:
- job_type may be one of the following: 'classical', 'probabilistic', 'deterministic'
- min_magnitude and investigation_time are only set for classical and probabilistic job types
- component may be one of the following: 'average', 'gmroti50'
- imt (intensity measure type) may be one of the following: 'pga', 'sa', 'pgv', 'pgd'
- period is only set if the intensity measure type is 'sa'
- truncation_type may be one of the following: 'none', '1-sided', '2-sided'
- imls (intensity measure levels) and poes (probabilities of exceedence) are only set for classical job types
- realizations (number of logic tree samples) is only set for classical and probabilistic job types
- histories (number of seismicity histories) is only set for probabilistic job types
- gm_correlated (ground motion correlation flag) is only set for probabilistic and deterministic job types
- float values listed above must always be positive
Response data:
{ "status": "success", "msg": "Calculation started", "id": 123 }
TODO:
Allows clients to obtain the results of the given OpenQuake calculation.
http://openquake.gemsun02.ethz.ch/mtapi/hazard_risk_result/123/
Response data (TODO: add min/max for stretched classifications):
{ "status": "success", "msg": "Calculation succeeded", "id": 123,
"files": [{
"id": 77, "name": "loss-map-0fcfdbc7.xml", "type": "loss map",
"min": 2.718281, "max": 3.141593,
"layer": {
"ows": "http://gemsun02.ethz.ch/geoserver-geonode-dev/ows"
"layer": "geonode:loss_map_data",
"filter: "output_id=77"}}, {
"id": 78, "name": "hazardmap-0.01-mean.xml", "type": "hazard map",
"min": 0.060256, "max": 9.780226
"layer": {
"ows": "http://gemsun02.ethz.ch/geoserver-geonode-dev/ows"
"layer": "geonode:hazard_map_data",
"filter": "output_id=78"}}]}
Please note that in case of success the hazard and loss map data will be written to the hazard_map_data
and loss_map_data
tables respectively.
Both tables will have a foreign key to the respective hazard/loss map (see the "filter" field above).
In case of failure the returned json data will look as follows:
{ "status": "failure", "msg": "Calculation failed", "id": 123 }
Response codes:
- 404: when result not available yet
- 200: when the result is available
- 500: in case of failure