Deze scripts zijn volgens mij erg handig!
Ik heb enkele pogingen gedaan om je scripts werkend te krijgen maar daar heb ik nog wat moeite mee.
Daarom heb ik op een ander forum wat hulp gevraagd om met R studio dit draaiend te krijgen
Zou jij hier naar willen kijken om potentiële gebruikers klein beetje op weg kunnen helpen?
Dit 'demo’tje laat zien hoe je xyz direct goed uit Qgis kunt exporteren.
XYZ kunt je in de meeste DWG programma’s of in Revit importeren als topo surface,
Je bent me net voor want ik was bezig om een Nederlandstalige post op deze forum hierover te plaatsen. Deze kun je nu hier vinden.
in deze post staat ook uitgelegd hoe de package preceis werkt en hoe je hem moet installeren. Als je een foutmelding krijgt dat hij de functie ahn_point() niet kan vinden, dan heb je waarschijnlijk de package nog niet gedownload EN geladen.
…
package ‘R.methodsS3’ successfully unpacked and MD5 sums checked
package ‘shiny’ successfully unpacked and MD5 sums checked
package ‘manipulateWidget’ successfully unpacked and MD5 sums checked
package ‘miniUI’ successfully unpacked and MD5 sums checked
package ‘base64enc’ successfully unpacked and MD5 sums checked
package ‘webshot’ successfully unpacked and MD5 sums checked
package ‘httpuv’ successfully unpacked and MD5 sums checked
package ‘xtable’ successfully unpacked and MD5 sums checked
package ‘sourcetools’ successfully unpacked and MD5 sums checked
package ‘fastmap’ successfully unpacked and MD5 sums checked
package ‘glue’ successfully unpacked and MD5 sums checked Error: Failed to install ‘rAHNextract’ from GitHub:
** (converted from warning) cannot remove prior installation of package ‘glue’**
Dus de install verloopt niet vlekkeloos
Functie wordt niet herkend
ahn_point(name = “Utrecht point”, X = 136550, Y = 456060)
Error in ahn_point(name = “Utrecht point”, X = 136550, Y = 456060) : could not find function "ahn_point"
Dit probleem kom ik ook wel eens tegen met het installeren van andere packages. Snap dat zelf ook nog niet zo goed. Bij mij lukte het toen om de package waar het mis ging eerst te verwijderen en deze handmatig te installeren.
In dit geval:
remove.packages(“glue”)
install.packages(“glue”)
en dan weer
devtools::install_github(“Jellest/rAHNextract”)
> install.packages("glue")
WARNING: Rtools is required to build R packages but is not currently installed. Please download and install the appropriate version of Rtools before proceeding:
https://cran.rstudio.com/bin/windows/Rtools/
Installing package into ‘C:/Users/Admin/Documents/R/win-library/4.0’
(as ‘lib’ is unspecified)
There is a binary version available but the source version is
later:
binary source needs_compilation
glue 1.4.0 1.4.1 TRUE
Binaries will be installed
trying URL 'https://cran.rstudio.com/bin/windows/contrib/4.0/glue_1.4.0.zip'
Content type 'application/zip' length 158875 bytes (155 KB)
downloaded 155 KB
package ‘glue’ successfully unpacked and MD5 sums checked
The downloaded binary packages are in
C:\Users\Admin\AppData\Local\Temp\RtmpshAVvb\downloaded_packages
> devtools::install_github(“Jellest/rAHNextract”)
Error: unexpected input in "devtools::install_github(“"
Het is niet gelukt.
Heb andere varianten van de tekst geprobeerd maar het werkt niet.
Is Glue nu geinstalleerd of niet. Nogal onduidelijk om alleen te vertellen dat het gedownload is…
Vervolgens lijkt Rstudio me te zeggen dat het Jelle/rAHNextract misschien niet kan bereiken. Lastige materie.
Beste Jelle, ik ben een klein stapje verder. Blijkbaar mag je in Rstudio geef copy paste in de command line uitvoeren. ik heb de tekst eens uitgetikt en dat werkt de install wel. Heel maf.
Nu de volgende …
> ahn_point(name = “Utrecht point”, X = 136550, Y = 456060) Error: unexpected input in “ahn_point(name = “”
Hij snapt de naamgeving niet. Is dit een verwijzing naar een ID in een database om weg te schrijven…
BVD Hans
Dat is bijzonder. Goed om te lezen dat het nu wel werkt.
Ik denk dat het nu ook fout gaat met het kopiëren en plakken. Probeer het eens zelf in te voeren… de " wordt namelijk verkeerd gekopieerd. Het is overigen niet verplicht om de ‘name’ parameter te gebruiken. Dit is slechts een naam die hij gebruikt als je bestanden wilt wegschrijven.
Ik ben overigens nog een klein foutje tegen gekomen als je de ‘resolution’ parameter niet zelf invult. Ik heb het aangepast. Je kunt het beste de package opnieuw installeren via devtools:install_github("Jellest/rAHNextract")
Als je nog problemen of gekke dingen tegenkomt, dan hoor ik het graag van je. Deze package in namelijk nog in ontwikkeling (pre-release).
devtools::install_github(“Jellest/rAHNextract”)
Error in loadNamespace(j ← i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) :
there is no package called ‘glue’
Glue weer opnieuw installeren denk ik
remove.packages(“glue”)
Removing package from ‘C:/Users/Admin/Documents/R/win-library/4.0’
(as ‘lib’ is unspecified)
Error in remove.packages : there is no package called ‘glue’
package ‘glue’ successfully unpacked and MD5 sums checked
Error: Failed to install ‘rAHNextract’ from GitHub:
(converted from warning) cannot remove prior installation of package ‘glue’
ja ja
Ik denk dat we beter de discussie kunnen voeren op het Rstudio forum.
Even volhouden…
Beste Jelle!
Eureka. Rstudio heb ik nu zovaak getweaked en gespeeld dat het volgens mij AHN bespeelt
Wat ik me alleen afvraag is hoe deze tot waarde +58 boven NAP komt. +4.60 lijkt me eerder een reeele waarde. Kun ik de verwijzing laten lopen naar data die wél gefilterd is?
De 58.98 m is de hoogte van het gebouw dat op Neude in Utrecht te vinden is. Zoals je ziet heeft hij de DSM geselecteerd, en neemt hij dus de hoogte van gebouwen mee. Als je het maaiveld hoogte wilt hebben, moet je `dem=“DTM” gebruiken als parameter. Bij deze specifieke coördinaten, heeft de DTM hier geen hoogte opgenomen.
ahn_point(X = 136550, Y = 456073, dem = "DTM")
AHN3 0.5 resolution DTM (maaiveld) selected.
trying URL 'https://geodata.nationaalgeoregister.nl/ahn3/wcs?SERVICE=WCS&VERSION=1.0.0&REQUEST=GetCoverage&COVERAGE=ahn3_05m_DTM&BBOX=136549.5,456072.5,136551,456074&CRS=EPSG:28992&RESPONSE_CRS=EPSG:28992&FORMAT=GEOTIFF_FLOAT32&WIDTH=3&HEIGHT=3'
Content type 'image/tiff' length 562 bytes
downloaded 562 bytes
[1] "Download raster image succeeded."
[1] "Intersecting raster. Getting elevation..."
[1] "Elevation of AHNelevation: NA m."
[1] NA
Jelle, ik begrijp dat er een manier is om een csv bestandje voorzien van X,Y coordinaen via Rstudio en rAHNextract te laten ‘vullen’ met Z waarden van het maailveld. De documentatie is erg vrij cryptisch en mager en ik kom er niet achter hoe je dit werkend krijgt. Kun jij daar iets over toelichten? Het is namelijk wel ontzettend intressant voor legio toepassingen !
Jelle, ik kan me voorstellen dat je het erg druk hebt en dit niet direct top priority is.
Zou fjin zijn als je een beetje uit de doeken kunt doen hoe bijvoorbeeld de csv file eruit ziet die in 262 wordt aangehaald.
Nog mooier zou zijn als er een soort ‘specify file’ > browse functie zou worden gebruikt in Rstudio.
Zijn er andere mensen bekend met Rstudio die dit werkend kunnen krijgen?Zou leuk zijn
Excuses dat ik nu pas reageer. Heb dit even gemist in combinatie met een paar dagen er tussenuit. Nogmaals mijn excuses hiervoor.
R packages zijn vaak zo gemaakt dat ze werken met andere packages en dat ze om algemene R kennis vragen. Het inlezen van een .csv bestand en een functie in een loop draaien zijn voorbeelden daarvan. Mijn documentatie legt slechts uit hoe je de functies van mijn package moet gebruiken.
het ahn_hoogte.R bestand dat je hebt gevonden op de github pagina is inderdaad een voorbeeld hoe het moet. Dit was echter een eerste versie van het script dat iemand anders toen heeft gebruikt. Let wel, gebruik niet de rest van de code want dat is verouderd. Ik raad om het via de package te doen. Wel kun je de techniek gebruiken om een csv in te lezen (regel 262 in het bestand ahn_hoogte.R).
Wat bedoel je precies met ‘specify file’ > browse functie’? In R zul je alles moeten doen met inlezen van bestanden vai allerlei commands/functies.
Hey Jelle, Ik probeer momenteel voor een project hoogtes op te halen van punten binnen amsterdam. Mijn vraag is eigenlijk: hoe weet jij de correspodentie tussen punten op het raster van de TIFF en de long/lats?
De TIFF bestanden van de AHN zijn GeoTIFF. Deze tiff bestanden bevat een attribuut met de extent (xmin,ymin,xmax,ymax) waar het is. Als je deze tiff bestanden als raster in je script/programma laadt, dan weet hij meteen waar het is via de extent attribuut. Beantwoord dit een beetje je vraag?
@Jellest ik heb het Rstudio script geprobeerd maar er lijkt een sp onderdeel te missen. Enig idee welke (sub) functionlaitiet ik moet inladen
library(raster) Loading required package: sp
library(rAHNextract)
punten ← read.table(“C:\Users\Admin\Documents\_R Studio\coordinaten.csv”, header = TRUE, sep=",")
Error in file(file, “rt”) : cannot open the connection
In addition: Warning message:
In file(file, “rt”) :
Error in mapply(ahn_point, name = punten$ID, X = punten$X, Y = punten$Y, :
object ‘punten’ not found
EDIT:
documentatie
library(sp) ; lijkt enig effect te sorteren
Alleen krijg ik nu een andere foutmelding
alle_hoogtes ← mapply(ahn_point, name = punten$ID, X = punten$X, Y = punten$Y, dem = “DTM”)
Error in mapply(ahn_point, name = punten$ID, X = punten$X, Y = punten$Y, :
object ‘punten’ not found #voeg resultaten samen met coordinaten in een tabel en maak kolom namen
alle_hoogtes_tabel_ruw ← data.frame(“DTM”, punten, alle_hoogtes)
Error in data.frame(“DTM”, punten, alle_hoogtes) :
object ‘punten’ not found
colnames(alle_hoogtes_tabel_ruw) ← c(“DEM”, “ID”, “X”, “Y”, “hoogte”)
Error in colnames(alle_hoogtes_tabel_ruw) ← c(“DEM”, “ID”, “X”, “Y”, :
object ‘alle_hoogtes_tabel_ruw’ not found #rond af alles af naar 2 decimalen
alle_hoogtes_tabel ← alle_hoogtes_tabel_ruw
Error: object ‘alle_hoogtes_tabel_ruw’ not found
is.num ← sapply(alle_hoogtes_tabel, is.numeric)
Error in lapply(X = X, FUN = FUN, …) :
object ‘alle_hoogtes_tabel’ not found
De oorzaak van je eerste foutmelding is ook de oorzaak van je tweede. Het heeft niks met sp te maken. Er gaat iets mis met inladen van je punten. Als je \ gebruikt moet je er twee plaatsen. Één werkt als escape character. Je kunt ook één / gebruiken. Let ook op dat je de juiste " gebruikt.