es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tamaño de imagen incorrecto al generar imágenes raster png a partir de datos vectoriales.

Estoy escribiendo una API en Python (formato WMS) para obtener los datos meteorológicos en forma de cuadrícula (precipitación) y convertirlos en imágenes png. Estoy utilizando GDAL para esto y los pasos son los siguientes:

  1. Obtener los datos de la base de datos utilizando la BBOX del WMS.
  2. Rasterizar los datos utilizando gdal.Rasterize y convertirlos en archivos tiff.
  3. Luego aplicar estilo al tiff utilizando gdal.DEMProcessing y convertir el tiff en png, retornando las imágenes PNG como resultado de la API.
  4. Consumir esta API WMS desde OpenLayers para superponer los datos en el mapa.

Problema:
El problema que estoy enfrentando es que no puedo obtener el tamaño correcto de las imágenes generadas, lo que ocasiona que los datos se muestren como en la imagen que se muestra a continuación. Necesito ayuda para saber qué conjunto de opciones se deben utilizar en “rasterize” o “demprocessing” para obtener el resultado correcto. Código de muestra:

options = gdal.RasterizeOptions(
                format='GTiff', attribute='value', noData=NoData_value,
                width=w, height=h,
                outputType=gdalconst.GDT_Float32,
                outputBounds=[x_min,y_min,x_max,y_max],
                outputSRS=crs)

Imagen WMS en el mapa

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema que enfrentas está relacionado con el tamaño de las imágenes generadas en la API WMS. Para obtener la salida correcta, deberás modificar las opciones utilizadas en las funciones gdal.Rasterize y gdal.DEMProcessing.

    En gdal.Rasterize, puedes intentar ajustar los parámetros de ancho (width) y alto (height) según el tamaño de salida deseado. Esto garantizará que los archivos tiff convertidos tengan las dimensiones correctas.

    En gdal.DEMProcessing, puedes intentar usar el parámetro “-tr” para establecer la resolución deseada de la imagen de salida en unidades georreferenciadas por píxel. También puedes intentar especificar el tamaño exacto de la imagen de salida utilizando el parámetro “-ts” en lugar de especificarlo en la función gdal.Rasterize.

    Adicionalmente, sería útil verificar la caja delimitadora (bounding box) y el sistema de referencia de coordenadas (CRS) de tus datos de origen y la imagen de salida para asegurar que coincidan correctamente.

    Utilizar las opciones correctas y la manipulación adecuada de datos geoespaciales ayudará a solucionar el problema de tamaño incorrecto de las imágenes en la API WMS.

Comments are closed.