Necesito extraer valores de unos archivos raster (stack) utilizando un shapefile. para traer ambos en el mismo CRS, primero transformé el shapefile utilizando los códigos EPSG. Al abrirlo en un software GIS (QGIS, Saga) no estaba en el lugar correcto. (también mediante la recuperación del CRS de los rasters y la reproyección del shapefile).
Después he extraído manualmente el código crs correcto ( +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 +units=m +no_defs
) de la "proyección sobre la marcha" en QGis para mi R-Code.
Al final se me ocurrió lo siguiente:
shp<-readOGR(dsn="hagel", layer="testflaechen_20131203")
crs(shp) # get coordinate reference system (CRS)
>CRS arguments:
+proj=lcc +lat_1=46 +lat_2=49 +lat_0=47.5 +lon_0=13.33333333333333 +x_0=400000
+y_0=400000 +ellps=bessel +units=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 +units=m +no_defs"
compareCRS(shp, shputm)
[1] TRUE
writeOGR(shputm, dsn="hagel", layer="testflaechen_20131203_utm", driver="ESRI Shapefile", overwrite_layer=TRUE)
Así que lo extraño es que compareCRS
me dice que son lo mismo. En QGis no parecen serlo y además si uso extract()
en otros pasos con shp y shputm me da diferentes valores.
Otro problema o indicio de que algo debe estar mal en la proyección puede verse en extshp1<-extent(shputm)
lo que lleva a los siguientes valores:
extshp1 clase : Extensión xmin : 649456.4 xmax : 657021.6 ymin : 488263.9 ymax : 505175.5
Aunque los valores deberían ser algo así: extshp<-extent(c(623874.1, 634993, 5343486, 5362521))
(se obtienen los valores manualmente a través de drawextent()
)
shapefiles en dropbox y un raster de muestra de la región
En realidad, todo esto debería ser sencillo, pero me está costando mucho trabajo.