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 API de procesos para la obtención de las estadísticas del área de influencia sobre el MDT de la galería de ejemplos de API CNIG |
Interfaz del Swagger UI para acceder al proceso bufferElevation |
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.
En este proceso, el parámetro «geom» puede admitir distintos formatos como datos de entrada: WKT (Well Known Text), GeoJSON y GML. A continuación, se muestran varios ejemplos en los que varía el contenido del código JSON según el formato utilizado para el parámetro «geom».
Todos los ejemplos parten de las coordenadas geográficas de un punto cercano al pico del Teide (-16.642978, 28.272218), utilizando el sistema de referencia WGS84 (EPSG:4326) y una distancia fija de 3.000 metros.
De forma opcional, es posible solicitar el cálculo de valores estadísticos del terreno dentro del área de influencia —altitud mínima, máxima, media y desviación estándar— estableciendo el parámetro «estadisticas» con el valor true.
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.642978, 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,\"distancia\":3000,\"estadisticas\":true,\"formato\":\"geojson\",\"geom\":\"{\\\"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, del que mostramos una parte a continuación:
{
"id":"BufferElevation",
"values": {
"type": "Feature",
"properties": {
"min": 2107.98291015625,
"max": 3713.14599609375,
"avg": 2840.152099609375,
"std": 335.28131103515625
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
-16.612401296940373,
28.272582353895817
],
[
-16.61242186480579,
28.27116512221552
],
[
-16.61252618390792,
28.26834322044267
],
[
-16.612713964998296,
28.269750785549427
],
[
-16.61631041480393,
28.276441730556083
]
]
]
},
"properties": {
"min": 2004.760986328125,
"max": 2571.5859375,
"avg": 2202.36376953125,
"std": 129.33950805664062
}
}
}
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. Puedes descargar el fichero completo aquí.
{
"id":"BufferElevation",
"values": {
"type": "Feature",
"properties": {
"min": 2107.98291015625,
"max": 3713.14599609375,
"avg": 2840.152099609375,
"std": 335.28131103515625
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
-16.612401296940373,
28.272582353895817
],
[
-16.61242186480579,
28.27116512221552
],
[
-16.61252618390792,
28.26834322044267
],
[
-16.612713964998296,
28.269750785549427
],
[
-16.61631041480393,
28.276441730556083
]
]
]
},
"properties": {
"min": 2004.760986328125,
"max": 2571.5859375,
"avg": 2202.36376953125,
"std": 129.33950805664062
}
}
}
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, del que mostramos una parte a continuación:
{
"id":"BufferElevation",
"values": {
"type": "Feature",
"properties": {
"min": 2107.98291015625,
"max": 3713.14599609375,
"avg": 2840.152099609375,
"std": 335.28131103515625
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
-16.612401296940373,
28.272582353895817
],
[
-16.61242186480579,
28.27116512221552
],
[
-16.61252618390792,
28.26834322044267
],
[
-16.612713964998296,
28.269750785549427
],
/.../
[
-16.61315428895513,
28.278202640349022
],
[
-16.61284154950692,
28.276812596145028
],
[
-16.61261142398962,
28.275409966329864
],
[
-16.612464540015374,
28.273998595957746
],
[
-16.612401296940373,
28.272582353895817
]
]
]
Este artículo forma parte de una serie para saber más sobre OGC API Processes y otros procesos del Servicio OGC API procesos del CNIG consulta el artículo índice.
Comentarios