标签: rgdal

如何使用rgdal包将NAD 83坐标转换为纬度和经度?

我有坐标,所有这些都应该位于DC中,但是我无法弄清楚如何将它们从NAD 83转换为R中的纬度和经度.我正在使用spTransform()rgdal包中的函数并得到关于不符合的错误数据.

library(rgdal)
nad83_coords <- data.frame(x=c(396842.6, 397886.9, 398315.5, 398154.3, 398010.3), y=c(140887.1, 139847.0, 138743.9, 139534.5, 138697.3))
coordinates(nad83_coords) <- c('x', 'y')
proj4string(nad83_coords) <- CRS("+init=epsg:4269")
Error in `proj4string<-`(`*tmp*`, value = <S4 object of class "CRS">) : 
  Geographical CRS given to non-conformant data: 398315.5 140887.1
Run Code Online (Sandbox Code Playgroud)

proj4strings的其他组合产生相同的错误.我相信错误是因为坐标太大,但我不确定为什么会这样.坐标文档如下:

值在马里兰州立方米米NAD 83地图投影中.

我对绘图和投影很新,任何帮助都表示赞赏.

mapping r projection rgdal

7
推荐指数
1
解决办法
4973
查看次数

从shapefile(R)只读数据槽?

我有一些非常大的shapefile.我可以SpatialPolygonsDataFrame使用该rgdal函数将它们读入readOGR,但每个文件需要很长时间.我实际上只对插槽data.frame中显示的内容感兴趣@data.有没有办法只读取数据,跳过资源密集型多边形?

示例代码:

## State of Alabama census blocks (152 MB compressed, 266 MB uncompressed)
shpurl <- "http://www2.census.gov/geo/tiger/TIGER2011/TABBLOCK/tl_2011_01_tabblock.zip"
tmp    <- tempfile(fileext=".zip")
download.file(shpurl, destfile=tmp)
unzip(tmp, exdir=getwd())

## Read shapefile
nm  <- strsplit(basename(shpurl), "\\.")[[1]][1]
lyr <- readOGR(dsn=getwd(), layer=nm)

## Data I want
head(lyr@data)
Run Code Online (Sandbox Code Playgroud)

r geospatial shapefile rgdal

7
推荐指数
1
解决办法
1242
查看次数

在SpatialPolygonsDataFrame对象上使用Rcartogram

我试图在这个问题中做同样的事情,在R中的Cartogram + choropleth map,但是从SpatialPolygonsDataFrame开始并希望最终得到相同类型的对象.

我可以将对象保存为shapefile,使用scapetoad,重新打开它并转换回来,但我宁愿将它全部放在R中,以便程序完全可重现,这样我就可以自动编写几十种变体.

我已经在github上分配了Rcartogram代码,并在此处添加了我的努力.

本演示的基本内容是在地图上创建一个SpatialGrid,在网格的每个点查找人口密度,并将其转换为cartogram()处理所需格式的密度矩阵.到现在为止还挺好.

但是,如何根据输出来插入原始地图点cartogram()

这里有两个问题.第一种是将地图和网格放入相同的单位以允许插值.第二种是访问每个多边形的每个点,对其进行插值,并使它们保持正确的顺序.

网格以网格为单位,地图以投影单位表示(在示例longlat的情况下).必须将网格投影到longlat中,或将地图投影到网格单元中.我的想法是制作一个伪CRS并将其与spTransform()函数一起使用package(rgdal),因为它可以轻松处理对象中的每个点.

访问每个点很困难,因为它们是SpPDF对象的几个层:对象>多边形>多边形>线>坐标我认为.任何想法如何访问这些,同时保持整个地图的结构完整?

maps r rgdal cartogram

7
推荐指数
1
解决办法
458
查看次数

在SpatialPolygonsDataFrame上绘制SpatialPointsDataFrame

我有一个SpatialPolygonsDataFrame,我使用以下命令绘制:

spplot(milanoNILNew, "percPolVita",at = c(0,0.0696,0.08979,0.0974,0.1116,0.181),col.regions =pal,main="Quota Clienti Unipol con Polizze Vita ")
Run Code Online (Sandbox Code Playgroud)

我使用以下命令创建了一个spatialPointsDataFrame

agenziePoints<-SpatialPointsDataFrame(coords=datiAgenzie[,c("Long","Lat")],data=datiAgenzie,proj4string = llCRS, match.ID = TRUE).
Run Code Online (Sandbox Code Playgroud)

我可以绘制多边形,但我无法在同一个图上表示多边形上的agenziePoints.在此先感谢您的支持.

r spatial rgdal

6
推荐指数
1
解决办法
7830
查看次数

无法在ubuntu 14.04中安装rgdal(未定义以引用'pj_ctx_fclose')

我试图安装rgdal使用configure.args,但没有运气.

已安装的gdal版本:

gdal-config --version
1.11.2

ogrinfo --version
GDAL 1.11.2, released 2015/02/10
Run Code Online (Sandbox Code Playgroud)

找到了gdal二进制工具:

ls /usr/bin | grep gdal
gdal2tiles.py
gdal2xyz.py
gdaladdo
gdal_auth.py
gdalbuildvrt
gdal_calc.py
gdalchksum.py
gdalcompare.py
gdal-config
gdal_contour
gdaldem
gdal_edit.py
gdalenhance
gdal_fillnodata.py
gdal_grid
gdalident.py
gdalimport.py
gdalinfo
gdallocationinfo
gdalmanage
gdal_merge.py
gdalmove.py
gdal_polygonize.py
gdal_proximity.py
gdal_rasterize
gdal_retile.py
gdalserver
gdal_sieve.py
gdalsrsinfo
gdaltindex
gdaltransform
gdal_translate
gdalwarp
Run Code Online (Sandbox Code Playgroud)

找到proj头文件:

ls /usr/include | grep proj
libprojectM
libprojectM-qt
org_proj4_Projections.h
proj_api.h
projects.h
Run Code Online (Sandbox Code Playgroud)

找到了proj lib文件:

ls /usr/lib | grep proj
libproj.a
libprojectM-qt.so
libprojectM-qt.so.1
libprojectM-qt.so.1.10
libprojectM.so
libprojectM.so.2
libprojectM.so.2.1.0
libproj.la …
Run Code Online (Sandbox Code Playgroud)

r gdal proj rgdal

6
推荐指数
1
解决办法
2315
查看次数

使用Leaflet(对于R)加载SpatialPolygonsDataFrame不起作用

首先,我是R的新手所以请耐心等待.

我最终要完成的是用Leaflet展示阿姆斯特丹的互动地图.为此,我正在使用RGDAL来读取shapefile.

链接包含阿姆斯特丹的shapefile.

我正在使用以下代码来读取shapefile并显示地图.

amsterdam <- readOGR(".", layer = "sd2010zw_region", verbose = FALSE)

leaflet(amsterdam) %>%
  addProviderTiles("CartoDB.Positron", options= providerTileOptions(opacity = 0.99)) %>%
    addPolygons(
      stroke = FALSE, fillOpacity = 0.5, smoothFactor = 0.5
    )
Run Code Online (Sandbox Code Playgroud)

我得到的是CartoDB.Positron的地图,而不是第二层的'polygonmap'.我得到的是包含各种数据的SpatialPolygonsDataFrame.

另一方面,当我使用绘图方法时,我得到了阿姆斯特丹的地图

plot(amsterdam, axes=TRUE, border="gray")
Run Code Online (Sandbox Code Playgroud)

但我不想使用情节,我想使用Leaflet :)

我在这做错了什么?

r rgdal leaflet

6
推荐指数
1
解决办法
3464
查看次数

使用 ggplot 绘制 shapefile 和 gganimate 动画

样本数据

library(raster)
library(ggplot2)

my.shp <- getData('GADM', country = 'FRA', level = 1)
plot(my.shp)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

如果我想使用 ggplot 绘制此数据:

my.shp_f <- fortify(my.shp, region = "ID_1")
ggplot(data = my.shp_f, aes(long, lat, group = group)) + geom_polygon(fill = "grey80")
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

问题一:为什么行政边界消失了?

问题 2: 我有另一个数据框,其中包含每个行政区划从第 1 天到第 365 天的 2 年日降雨量数据。

rain.data <- data.frame(ID_1 = rep(my.shp@data$ID_1, each = 2 * 365),
                        year = rep(rep(1981:1982, each = 365), times = 2),
                        day = rep(1:365, times = 4),
                        rain = sample(1:20, replace = T, 2 * 365 * …
Run Code Online (Sandbox Code Playgroud)

r shapefile ggplot2 rgdal gganimate

6
推荐指数
1
解决办法
1575
查看次数

在 R 双自由或损坏中安装 SF 时出错

问题

我试图在我的 Ubuntu 18.04 机器上再次安装 SF,因为它给了我一些问题。由于我想开始一切清理,我尝试了以下操作:

remove.packages("sf")
install.packages("sf")
Run Code Online (Sandbox Code Playgroud)

然而,这导致了以下错误。

checking GDAL: checking whether PROJ is available fur running:... double free or corruption (out)
./configure: line 3625: 20789 Aborted                 (core dumped) ./gdal_proj
no
configure: error: OGRCoordinateTransformation() does not return a coord.trans: PROJ not available?
ERROR: configuration failed for package ‘sf’
* removing ‘/home/derek/R/x86_64-pc-linux-gnu-library/3.6/sf’
Run Code Online (Sandbox Code Playgroud)

当我看到消息double free or corruption (out) 时,我查看并意识到这是一个 c++ 问题,如此链接此链接所示。但即使我知道问题应该出在 PROJ 中,我什至不知道从哪里开始。

我尝试过的。

我尝试重新安装 rgdal 以查看是否像上面一样神奇地解决了问题

remove.packages("rgdal")
install.packages("rgdal")
Run Code Online (Sandbox Code Playgroud)

这导致了类似的结果

** testing if installed package …
Run Code Online (Sandbox Code Playgroud)

r rgdal r-sf ubuntu-18.04

6
推荐指数
0
解决办法
580
查看次数

安装 rgdal 时“目标‘projectit.o’的配方失败”

rgdal_1.5-15在 R 中安装时出现以下错误(我使用的是 Ubuntu 18.04.4 LTS GNU/Linux 4.15.0-112-generic x86_64):

projectit.cpp:159:6: error: conflicting declaration of C function ‘SEXPREC* transform_ng(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP)’
SEXP transform_ng(SEXP fromargs, SEXP toargs, SEXP coordOp, SEXP npts, SEXP x, SEXP y, SEXP z SEXP aoi) {
  ^~~~~~~~~~~~
In file included from projectit.cpp:11:0:
rgdal.h:132:6: note: previous declaration ‘SEXPREC* transform_ng(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP)’
SEXP transform_ng(SEXP fromargs, SEXP toargs, SEXP coordOp, SEXP npts, SEXP x, SEXP y, SEXP z, SEXP aoi); // …
Run Code Online (Sandbox Code Playgroud)

r rgdal

6
推荐指数
1
解决办法
231
查看次数

如何在 R 中使用 Mollweide 投影和 sf/rnaturalearth/ggplot 来旋转世界地图?

我想使用以太平洋地区(特别是澳大利亚)为中心的 Mollweide 投影,使用 rnaturalearth--> sf-->ggplot管道在 R 中绘制世界地图。

我遇到了一个恼人的问题,即在全球范围内连接线路。

从新的 R 会话中,我运行

library(tidyverse)
library(rnaturalearth)
library(rnaturalearthdata)
library(sf)

target_crs <- st_crs("+proj=moll +x_0=0 +y_0=0 +lat_0=0 +lon_0=133")
worldrn <- ne_countries(scale = "medium", returnclass = "sf") %>%
  sf::st_transform(crs = target_crs)
ggplot(data = worldrn, aes(group = admin)) +
  geom_sf()
Run Code Online (Sandbox Code Playgroud)

生成这个图

在此输入图像描述

这是我的sessionInfo()

R version 4.1.0 (2021-05-18)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Catalina 10.15.7

Matrix products: default
BLAS:   /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRblas.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRlapack.dylib

locale:
[1] en_AU.UTF-8/en_AU.UTF-8/en_AU.UTF-8/C/en_AU.UTF-8/en_AU.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils …
Run Code Online (Sandbox Code Playgroud)

r proj ggplot2 rgdal r-sf

6
推荐指数
1
解决办法
1394
查看次数