Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于坐标列表提取光栅值-spTransform?_R_Coordinates_Raster_R Raster_Sp - Fatal编程技术网

基于坐标列表提取光栅值-spTransform?

基于坐标列表提取光栅值-spTransform?,r,coordinates,raster,r-raster,sp,R,Coordinates,Raster,R Raster,Sp,我希望根据坐标列表提取光栅值。我在网上找到了一些脚本,其中包括坐标()、空间点()、crs()和spTransform(),还有一些没有。有人能解释一下脚本1或脚本2是否正确以及原因吗?多谢各位 脚本1 sites <- read.csv("df.csv") coordinates(sites)= ~ Longitude+ Latitude mypoints = SpatialPoints(sites,proj4string = CRS("+init=epsg:4326")) mypro

我希望根据坐标列表提取光栅值。我在网上找到了一些脚本,其中包括坐标()、空间点()、crs()和spTransform(),还有一些没有。有人能解释一下脚本1或脚本2是否正确以及原因吗?多谢各位

脚本1

sites <- read.csv("df.csv")
coordinates(sites)= ~ Longitude+ Latitude 
mypoints = SpatialPoints(sites,proj4string = CRS("+init=epsg:4326"))
myproj = CRS(myraster)
points.proj = spTransform(mypoints, myproj)
myvalues = extract(myraster, points.proj)

站点都可能是正确的。使用光栅层
r
和data.frame
站点
可以

v <- extract(r, sites[, c("Longitude", "Latitude")])
crs
是“sterea…”,范围“178400181600…”表明坐标明显不是经度和纬度(它们以距离crs原点米的距离表示)

在这种情况下,您可能在
r

site <- data.frame(Longitude=5.745039, Latitude=50.96254)
我们也是

pts <- SpatialPoints(site)
crs(pts) <- "+proj=longlat +datum=WGS84"
rcrs <- crs(r)
ptrans <- spTransform(pts, rcrs)

能否请您粘贴
head(sites)
的结果,以便我们可以看到您开始使用的
.csv
数据的类型和结构?下次请像我在回答中那样包括一些示例数据
site <- data.frame(Longitude=5.745039, Latitude=50.96254)
extract(r, site)
#     [,1]
#[1,]   NA
pts <- SpatialPoints(site)
crs(pts) <- "+proj=longlat +datum=WGS84"
rcrs <- crs(r)
ptrans <- spTransform(pts, rcrs)
extract(r, ptrans)
#1529.66