Mais

Reprojeção de shapefile em R e extração final de valores

Reprojeção de shapefile em R e extração final de valores


Preciso extrair valores de alguns arquivos raster (pilha) usando um arquivo de forma. para trazer os dois no mesmo CRS, primeiro transformei o arquivo de forma usando os códigos EPSG. Abri-lo em um software GIS (QGIS, Saga) não estava no lugar correto. (também recuperando os rasters CRS e reprojetando o arquivo de forma).

Depois, extraí manualmente o código crs correto (+ proj = lcc + lat_1 = 46 + lat_2 = 49 + lat_0 = 47,5 + lon_0 = 13.33333333333333 + x_0 = 400000 + y_0 = 400000 + ellps = bessel + towgs84 = 577.326,90.129.463.919,5.137,1.474,5.297.2.4232 + unidades = m + no_defs) da "projeção em tempo real" no QGis para meu código-R.

No final, descobri o seguinte:

shp <-readOGR (dsn = "hagel", layer = "testflaechen_20131203") crs (shp) # obter sistema de referência de coordenadas (CRS)> Argumentos CRS: + proj = lcc + lat_1 = 46 + lat_2 = 49 + lat_0 = 47,5 + lon_0 = 13.33333333333333 + x_0 = 400000 + y_0 = 400000 + ellps = bessel + unidades = m + no_defs shputm <-shp crs (shputm) <- "+ proj = lcc + lat_1 = 46 + lat_2 = 49 + lat_0 = 47,5 + lon_0 = 13.33333333333333 + x_0 = 400000 + y_0 = 400000 + ellps = bessel + towgs84 = 577.326,90.129.463.919,5.137,1.474,5.297,2.4232 + unidades = m + no_defs "compareCRS (shp, shputm) [1] TRUE writeOGR (shputm) , dsn = "hagel", layer = "testflaechen_20131203_utm", driver = "ESRI Shapefile", overwrite_layer = TRUE)

Então, o estranho é quecompareCRSme diz que eles são iguais. No QGis eles não parecem ser e também se eu usarextrair()em etapas posteriores com shp e shputm isso me dá valores diferentes.

Outro problema ou indicação de que algo deve estar errado com a projeção pode ser visto emextshp1 <-extent (shputm)levando aos seguintes valores:

classe extshp1: Extent xmin: 649456,4 xmax: 657021,6 ymin: 488263,9 ymax: 505175,5

Embora os valores devam ser mais ou menos assim:extshp <-extent (c (623874.1, 634993, 5343486, 5362521))(obtive valores manualmente viadrawextent ())

shapefiles na caixa de depósito e um raster de amostra da região

Na verdade, tudo isso deveria ser simples, mas estou realmente lutando com isso.


O código acima parece mais com você acabou de clonarshppara dentroshputme então atribuir a saída decrs (shp)parashputmsem realizar uma reprojeção real. De qualquer forma, se você importar o arquivo de forma e o raster NDVI e, em seguida, reprojetarshpusandospTransform, a extração de dados subsequente deve funcionar bem. Além disso, a saída deextensão (shp_utm)concorda aproximadamente com a extensão do arquivo de forma extraída manualmente que você descreveu acima.

# Biblioteca de pacotes obrigatórios (rgdal) library (raster) # Shapefile import shp <- readOGR (dsn = "data", layer = "testflaechen_20131203") # crs (shp) # Raster import rst <- raster ("data / ndvi_LE71890272009095ASN00.tif ") # crs (rst) # Reprojeção de Shapefile shp_utm <- spTransform (shp, crs (rst)) # compareCRS (rst, shp_utm) # extend (shp_utm) # Extrato de extração de valor (rst, shp_utm)

Se você deseja extrair valor de um dado SRTM, então você deve usar um shapefile de ponto porque a imagem raster muda seu valor de pixel em nível diferente e na camada de polígono você não consegue encontrar o valor correto. então você precisa de um shapfile de ponto para extrair o valor.


Assista o vídeo: Import and visualize Shapefiles in R