El proceso de definición de área de influencia con estadísticas de altitud (bufferElevation) implica la creación de un área de influencia (buffer) a partir de un punto y una distancia específica. Opcionalmente, se pueden obtener resultados estadísticos de altitud como la elevación máxima, mínima, promedio y desviación típica. Estas estadísticas se calculan a partir de los puntos contenidos en el área de influencia utilizando el Modelo Digital del Terreno (MDT05) proporcionado por el Plan Nacional de Ortofotografía Aérea.
- «geom»: Parámetro obligatorio que corresponde al punto a partir del que se va a calcular el área de influencia. Tipo de dato String
- «formato»: parámetro obligatorio que indica el formato en que se proporciona la geometría del parámetro «geom». Los formatos soportados son GML, GeoJSON y WKT. Tipo de dato: string.
- «crs» parámetro es opcional, que viene proporcionado por el sistema de referencia de los parámetros «geom», por defecto se utilizará el Sistema de referencia (EPSG: 4326). Tipo de dato: integer.
- «distancia»: distancia del área de influencia (metros). Si no se proporciona se utilizará el valor por defecto 100 metros.
- «estadisticas»: Indica si se quieren obtener las estadísticas del área de influencia calculada. Los valores permitidos son true/false. Valor por defecto se utiliza false.
- «id»: Identificador del proceso.
- «values» que es el resultado con la geometría del área de influencia calculada y las estadísticas si es solicitado. Formato de salida GeoJSON.
Ejemplo de la API CNIG para la obtención de las estadísticas de altitud dentro de un área de influencia y a partir del MDT |
Una opción para verificar los API de procesos es utilizar Swagger UI que ofrece la misma interfaz de procesos. Desde aquí podemos acceder al proceso bufferElevation de una manera sencilla, de modo que podemos verificar el procedimiento para la obtención de las estadísticas principales de las altitudes dentro de un área de influencia a partir del MDT05.
Otra forma más experta de explotar lo servicios es a través del comando cURL o de una biblioteca de Python llamada requests, como se detalla en los siguientes ejemplos.
FORMATO |
EPSG |
GeoJSON |
4326 |
WKT |
|
GML |
Visualización del servicio WMS Mapa Raster IGN del Parque Nacional El Teide donde se definirá un área de influencia para la obtención de los valores estadísticos de altitudes. |
FORMATO GeoJSON
Para el cálculo de las estadísticas de altitud para un área de influencia en formato GeoJSON el código JSON para realizar la petición sería:
{
"inputs": {
"crs": 4326,
"formato": "geojson",
"distancia": 3000,
"estadisticas": true,
"geom": "{\"coordinates\": [-16.64297, 28.272218,\"type\":\"Point\"}"
}
}
El cURL que se ejecuta:
curl -X POST "https://api-processes.idee.es/processes/bufferElevation/execution" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"inputs\":{\"crs\":4326,\"formato\":\"geojson\",\"distancia\":3000,\"estadisticas\":true,\"geom\":\"{\\\"type\\\": \\\"FeatureCollection\\\",\\\"features\\\": [{\\\"geometry\\\": {\\\"coordinates\\\": [-16.642978,28.272218],\\\"type\\\": \\\"Point\\\"}\"}}"
Ejemplo de petición desde script Python
- «request» para obtener los datos de la petición
- «.json()» para obtener el resultado de la operación ejecutada en formato json
- «.status_code» para obtener el estado de la petición HTTP.
import requests
FORMATO WKT
Para el cálculo de las estadísticas principales de las altitudes de un área de influencia en formato WKT, la geometría del punto viene dada por el parámetro "geom": "POINT(longitud latitud)".
El código JSON para realizar la petición sería: "
{
"inputs": {
"crs": 4326,
"formato": "wky",
"distancia": 3000,
"estadisticas": true,
"geom": "Point(-16.64297, 28.272218)"
}
}
El cURL que se ejecuta:
curl -X POST "https://api-processes.idee.es/processes/bufferElevation/execution" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"inputs\":{\"crs\":4326,\"formato\":\"wkt\",\"distancia\":3000,\"estadisticas\":true,\"geom\":\"POINT(-16.642978,28.272218)\"}}"
Para el cálculo de las estadísticas principales de las altitudes de un área de influencia en formato GML El código JSON de entrada modificando los parámetros: “formato” y “geom” para definir el punto en formato GML sería:
{
"inputs": {
"crs": 4326,
"formato": "gml",
"distancia": 3000,
"estadisticas": true,
"geom": "<gml:Point xmlns:gml=\"http:\/\/www.opengis.net\/gml\"><gml:coordinates>-16.64297 28.272218<\/gml:coordinates>\/gml:Point>"
}
}
El cURL que se ejecuta:
curl -X POST "https://api-processes.idee.es/processes/bufferElevation/execution" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"inputs\":{\"crs\":4326,\"formato\":\"gml\",\"distancia\":3000,\"estadisticas\":true,\"geom\":\"<gml:Point xmlns:gml=\\\"http://www.opengis.net/gml\\\"><gml:coordinates>-16.642978 28.272218</gml:coordinates></gml:Point>\"}}"
El resultado de ejecutar cualquiera de las anteriores peticiones definidas en los formatos (GeoJSON, WKT y GML) para el ejemplo propuesto, nos devuelve el mismo resultado en formato GeoJSON:
{
"id":"BufferElevation",
"values": {
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
-16.615978,
28.272218
],
[
-16.616015002561625,
28.270804929181438
],
[
-16.61631041480393,
28.267994269443914
],
/.../
[
-16.61631041480393,
28.276441730556083
]
]
]
},
"properties": {
"min": 2004.760986328125,
"max": 2571.5859375,
"avg": 2202.36376953125,
"std": 129.33950805664062
}
}
}
Representación de los
resultados del ejemplo propuesto empleando el proceso de API Processes de OGC: bufferElevation. |
No hay comentarios:
Publicar un comentario