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.


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)

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.