Neuprojektion des Rasters von Lat / Lon nach UTM in R?

12

Ich muss es in eine UTM umwandeln, um den Puffer funktionsfähig zu machen.

wets<-readOGR(dsn=".",layer="shapefile")
r.raster <- raster()
extent(r.raster) <- extent(wets)
res(r.raster) <- 100 

wets.r <- rasterize(wet,r.raster)
plot(wets.r)
wetsbuf<-buffer(wets.r,width=500)

Während der Puffererstellung, bei der es sich um die letzte Codezeile handelt, wird folgende Warnung ausgegeben:

Warning message:  
In couldBeLonLat(x) :
  raster has a longitude/latitude CRS, but coordinates do not match that

Hier ist die Info

  summary(wets.r)
          layer
 Min.        1
 1st Qu.     1
 Median      2
 3rd Qu.     9
 Max.       11
 NA's    52629

summary(wets)

  Object of class SpatialPolygonsDataFrame
Coordinates:
      min       max
 x  683705  714088.8
 y 4326266 4343768.0
 Is projected: TRUE 
 proj4string :
 [+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_0=0 +datum=GGRS87
 +units=m +no_defs +ellps=GRS80 +towgs84=-199.87,74.79,246.62]
 Data attributes:
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
    0.0     2.5     5.0     5.0     7.5    10.0 






 wets.r

class       : RasterLayer 
dimensions  : 175, 304, 53200  (nrow, ncol, ncell)
resolution  : 100, 100  (x, y)
extent      : 683705, 714105, 4326268, 4343768  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 
data source : in memory
names       : layer 
values      : 1, 11  (min, max)
attributes  :
   ID FID
 from:  1   0
 to  : 11  10

Ich muss die Projektion ändern, um den Puffer machen zu können.

gsa
quelle
Befinden sich Ihre Daten in einem projizierten Koordinatensystem oder einer geografischen CS?
Aaron
Die anfänglichen Vektordaten befinden sich in einem projizierten Koordinatensystem, denke ich.
gsa
Projiziert (zB UTM) oder geografisch (Lat / Lon)?
Aaron
Ich weiß nicht, wie ich das überprüfen soll. Ich glaube, UTM, aber ich bin nicht sicher
gsa
Wie lauten die Koordinaten und in welchem ​​Gebiet (Bundesland, Stadt) befinden Sie sich?
ed.hank

Antworten:

15

Auf diese Weise können Sie ein Raster in R mithilfe des Raster- Pakets neu projizieren . In diesem Beispiel befand sich der Eingabe-Geotiff in einem geografischen NAD83-Koordinatensystem und ich projizierte in ein projiziertes NAD 83 UTM 15-Koordinatensystem. Eine gute Referenz für Projektionen im Proj4-Format, die von RGDAL verwendet werden, finden Sie unter spaciousreference.org .

library(raster)

# Create RasterLayer object
r <- raster('C:/temp/binary_nad83.tif')

# Define the Proj.4 spatial reference 
# http://spatialreference.org/ref/epsg/26915/proj4/
sr <- "+proj=utm +zone=15 +ellps=GRS80 +datum=NAD83 +units=m +no_defs" 

# Project Raster
projected_raster <- projectRaster(r, crs = sr)

# Write the RasterLayer to disk (See datatype documentation for other formats)
writeRaster(projected_raster, filename="C:/temp/binary_utm15.tif", datatype='INT1U', overwrite=TRUE)
Aaron
quelle
Vielen Dank für die Antwort, es gibt dies jedoch zurück: Fehler in projectExtent (from, projto): kann diese Transformation nicht ausführen Zusätzlich: Warnmeldung: In rgdal :: rawTransform (projfrom, projto, nrow (xy), xy [, 1], xy [,: 218 projizierte (s) Punkt (e) nicht endlich
gsa
Verwenden Sie ein Single-Band-Raster oder ein Multiband? Dieses Beispiel bezieht sich auf ein Einzelband-Raster.
Aaron
Es kommt von einem Rasterisierungsprozess eines Vektors (Feuchtgebiete), nicht von einem Satellitenbild, also werde ich mit dem einzelnen Band gehen.
gsa
Versuchen Sie, Ihre Raster / Rgal-Pakete zu aktualisieren: r-sig-geo.2731867.n2.nabble.com/…
Aaron
@gsa, wenn das funktioniert, ist es eine gute Idee, die Antwort zu bestätigen und zu akzeptieren! Andernfalls bearbeiten und klären Sie Ihre ursprüngliche Frage.
Simbamangu