Ich habe Teil einer falschen Antwort entfernt.
Die Funktion project() kann keine Datumkonvertierungen durchführen, damit Sie ein Problem haben und ich denke, was Sie haben, ist falsch.
Das Problem ist, dass Sie nur (/) von LongLat auf WGS84 projizieren können, so dass Ihre erste Verwendung des Projekts falsch ist. Wenn ich das richtig einschätze, haben Sie Koordinaten, die in AGD66 sind, also müssen Sie zuerst diese Projektion zuweisen und dann können Sie transformieren. Sie können Datumstransformationen nicht mit project() ausführen, sondern mit spTransform().
Ich glaube, Sie dies benötigen:
pts = read.table(text = "lon lat
147.1428 -43.49083", header = TRUE)
## assign original coordinate system
pts66 = SpatialPoints(cbind(pts$lon,pts$lat), CRS("+init=epsg:4202"))
## Then to transform it to WGS84
pts84 = spTransform(pts66, CRS("+init=epsg:3033"))
pts66
SpatialPoints:
coords.x1 coords.x2
[1,] 147.1428 -43.49083
Coordinate Reference System (CRS) arguments: +init=epsg:4202 +proj=longlat +ellps=aust_SA
+no_defs
pts84
SpatialPoints:
coords.x1 coords.x2
[1,] 11126605 2971806
Coordinate Reference System (CRS) arguments: +init=epsg:3033 +proj=lcc +lat_1=-68.5 +lat_2=-74.5
+lat_0=-50 +lon_0=70 +x_0=6000000 +y_0=6000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs
+towgs84=0,0,0
Das bedeutet, dass pts66 nicht von ihren ursprünglichen Werten geändert, aber sie haben die Metadaten korrekt für den nächsten Schritt, die sie zu Ihrem Ziel verwandelt (die Lambert Conformal ist Conic übrigens). Sie müssen vielleicht ein wenig mehr Nachforschungen anstellen, um herauszufinden, was erforderlich ist.
CRS("+init=epsg:4202")
CRS arguments:
+init=epsg:4202 +proj=longlat +ellps=aust_SA +no_defs
CRS("+init=epsg:3033")
CRS arguments:
+init=epsg:3033 +proj=lcc +lat_1=-68.5 +lat_2=-74.5 +lat_0=-50
+lon_0=70 +x_0=6000000 +y_0=6000000 +ellps=WGS84 +datum=WGS84 +units=m
+no_defs +towgs84=0,0,0
Ihr ursprüngliches Projekt() wurde versucht, falsch aus longlat auf WGS84 zu transformieren auf AGD66 longlat, aber diese Funktion kann das nicht so ist es nur Verwirrung in der Mischung hinzugefügt. Ein Datum ist keine Projektion, es ist ein kritischer Teil der Definition einer Projektion und in diesem Sinne ist "longlat on AGD66" eine Projektion wie "Lambert Conformal Conic on WGS84".
Hallo @mdsummer, danke für deine Antwort. Ich versuche es jetzt, aber wenn ich versuche, meinen lon/lat zu SpatialPoint() zu machen, bekomme ich den folgenden Fehler: Fehler in validObject (.Object): ungültige Klasse "SpatialPoints" Objekt: Bbox sollte nie NA-Werte enthalten . Irgendwelche Ideen, was das bedeutet, habe ich auf NA-Werte in der Datei überprüft, kann sie aber nicht finden. Sind diesen Punkten Variablen zugeordnet, die Probleme verursachen? Danke nochmal für deine Hilfe. – Adam
Bitte ignorieren Sie den obigen Kommentar. Ich hatte Daten in den Variablen, die den lon/lat pts zugeordnet sind, verloren. – Adam