Eu tenho um shapefile com polígonos. E eu tenho um arquivo raster global. Quero sobrepor os polígonos do shapefile na grade de varredura e calcular o valor médio da varredura para cada polígono.
Como posso fazer isso usando GDAL, escrevendo os resultados no shapefile?
Respostas:
Em R você pode fazer
e é um vetor com a média dos valores das células rasterizadas para cada polígono.
fonte
Seguindo os conselhos que recebi da lista de discussão gdal-dev, usei o StarSpan :
Os resultados são salvos no formato CSV. Naquele momento, isso já era suficiente para mim, mas deveria ser possível, de alguma forma, forjar um Shapefile a partir dessa informação.
fonte
Carregue seu shapefile e seu raster no PostGIS 2.0 e faça:
fonte
Não acho que o GDAL seja a melhor ferramenta para isso, mas você pode usar gdal_rasterize para "limpar" todos os valores fora do polígono.
Algo como:
O programa gdal_rasterize modifica o arquivo, então fazemos uma cópia para trabalhar. Também marcamos algum valor específico (zero neste caso) como nodata. O "-burn 0 -b 1" significa gravar um valor zero na banda 1 do arquivo de destino (work.tif). O "-i" significa rasterização invertida, para que gravemos valores fora do polígono, e não dentro dele. O comando gdalinfo com -stats informa sobre estatísticas da banda. Eu acredito que ele excluirá o valor nodata (que marcamos anteriormente com -a_nodata).
fonte
O script a seguir permite executar a tarefa com o GDAL: http://pcjericks.github.io/py-gdalogr-cookbook/raster_layers.html#calculate-zonal-statistics
fonte
Transforme o arquivo de forma em varredura por gdal_rasterize e use o código em http://www.spatial-ecology.net/dokuwiki/doku.php?id=wiki:geo_tools para calcular a estatística zonal para cada polígono. Você pode executar http://km.fao.org/OFwiki/index.php/Oft-reclass se desejar obter um tif com sua estatística de rasters. Aproveite o código Ciao Giuseppe
fonte
Isso não é possível usando o GDAL. Você pode usar outras ferramentas gratuitas, por exemplo, saga gis:
fonte
Você também pode usar o rasterstats, que é um módulo Python projetado para esta finalidade:
Então você pode acessar o atributo da primeira zona usando:
fonte
você pode usar a ferramenta de cálculo de estatísticas de pontos no arc gis e essa ferramenta pode ser baixada em http://ianbroad.com/arcgis-toolbox-calculate-point-statistics-polygon-arcpy/
fonte