3 votos

Cómo solucionar el aviso de nodata de rasterstats

Estoy utilizando el zonal_stats en la función rasterstats para calcular estadísticas resumidas a partir de GeoTiffs que contienen valores de índice vegetativo. Las estadísticas de resumen salen bien, sin embargo con cada iteración del paquete zonal_stats que ejecuto, me encuentro con la advertencia UserWarning: Setting nodata to -999; specify nodata explicitly warnings.warn("Setting nodata to -999; specify nodata explicitly")

Cuando creé cada archivo GeoTIFF, establecí el valor nodata como outband.SetNoDataValue(np.nan) . Se abre cada geotiff y se calculan las estadísticas VI con:

    raster = [FILE PATH]
    raster = rasterio.open(raster, mode='r')

    # Assign raster values to numpy nd array
    vi_array = raster.read(1)
    affine = raster.transform

    # Calculate VI stats
    zonal_stats = rasterstats.zonal_stats(shapefile, vi_array, affine=affine,
                                       stats="mean count std median",
                                       geojson_out=True)

¿Cómo se elimina este mensaje de advertencia?

2voto

Lucas Puntos 128

Es posible que haya configurado nodata en su trama, pero no está pasando esa trama a rasterstats.zonal_stats estás pasando un array numpy. Y los arrays numpy no tienen una función nodata propiedad.

Del mismo modo que se especifica la transformación afín al pasar una matriz a rasterstats.zonal_stats en lugar de una trama, también puede especificar el valor nodata:

# Calculate VI stats
zonal_stats = zonal_stats(shapefile, vi_array,
                          affine=affine, nodata=np.nan,
                          stats="mean count std median",
                          geojson_out=True)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X