EPSG-Code in LAS - lidR kann nicht eingestellt werden
Ich versuche, eine LAZ-Datei von EPSG 2226 auf EPSG 6418 neu zu projizieren.
Die Neuprojektion funktioniert einwandfrei (ich habe Folgendes befolgt: Kann ich eine LAS-Datei in LidR neu projizieren ), aber ich kann die Informationen nicht im LAS-Header speichern und anschließend meine LAS-Datei speichern (und die R-Umgebung verlassen). Das CRS ist verloren.
Laden Sie diese LAZ-Datei herunter
Ich habe den folgenden Code verwendet:
library(lidR)
las_tmp <- readLAS("./USGS_LPC_CA_Sonoma_2013_SOCO_0054_108_LAS_2017.laz")
las_tmp_reproj <- spTransform(las_tmp, sp::CRS("+init=epsg:6418"))
#> Warning messages:
#> 1: In showSRID(uprojargs, format = "PROJ", multiline = "NO") :
#> Discarded datum NAD83_National_Spatial_Reference_System_2011 in CRS definition
#> 2: In sp::proj4string(x) : CRS object has comment, which is lost in output
#> 3: EPSG code not found: header not updated. Try to use the function epsg() manually to ensure CRS will be written in file.
#> 4: In showSRID(uprojargs, format = "PROJ", multiline = "NO") :
#> Discarded datum Unknown based on GRS80 ellipsoid in CRS definition
Wie unter warnings()Nummer 3 angegeben, wird der Epsg-Code nicht gefunden und der Header nicht aktualisiert. Ich habe die Tipps befolgt und den folgenden Befehl ausprobiert:
epsg(las_tmp_reproj) <- as.integer(6418)
#> Warning message:
#> In showSRID(SRS_string, format = "PROJ", multiline = "NO") :
#> Discarded datum NAD83_National_Spatial_Reference_System_2011 in CRS definition
Leider führt der Zugriff auf die epsg-Informationen nach diesem Schritt zu epsg(las_tmp_reproj)folgendem Fehler:
epsg(ctg_tmp_reproj)
#> Error in if (tags[[i]]$key == 3072) return(i) :
#> l'argument est de longueur nulle
Bezieht es sich auf das Datum selbst? Die Fehlermeldung ist nicht wirklich explizit und ich stecke ziemlich fest
Antworten
Sie haben tatsächlich einen Fehler gefunden. Ich habe es als epsg (x) gemeldet : Fehler in if (tags [[i]] $ key == 3072) return (i): l'argument est de longueur nulle . Dieser Fehler kommt aus dem Paket rlas. Es wurde in Version 1.3.7 behoben. Um Ihre Probleme vor der CRAN-Version zu beheben, können Sie sie rlasvon Github installieren
remotes::install_github("Jean-Romain/rlas")