r - 无法在 R 中绘制 sf 线串:CPL_geos_is_empty 中的错误(st_geometry(x))
问题描述
我有飓风跟踪点,我在 QGIS 中转换为线:
https://i.imgur.com/PUOTpsi.png
https://i.imgur.com/5cbCdX2.png
我都保存为 shapefile 并使用sf
包将它们加载到 R 中。点将使用标准plot()
函数绘制,但线不会。
我遇到错误:
plot(hurricane_paths)
Error in CPL_geos_is_empty(st_geometry(x)) :
Evaluation error: IllegalArgumentException: point array must contain 0 or >1 elements.
我使用时遇到同样的错误plot(st_geometry(hurricane_paths))
不过,R 肯定会加载到几何图形中:
> hurricane_paths
Simple feature collection with 1410 features and 5 fields
geometry type: LINESTRING
dimension: XY
bbox: xmin: -179.9 ymin: -4.9 xmax: 8 ymax: 70.7
epsg (SRID): 4269
proj4string: +proj=longlat +datum=NAD83 +no_defs
First 10 features:
N.A begin end Year N.A_1 geometry
1 1976143N24271 <NA> <NA> 1976 SUBTROP:UNNAMED LINESTRING (-89 24, -89.6 2...
2 1976155N11265 <NA> <NA> 1976 ANNETTE LINESTRING (-95 11.4, -95.2...
3 1976159N27281 <NA> <NA> 1976 UNNAMED LINESTRING (-79 26.8, -78.5...
并st_geometry(hurricane_paths)
返回
Geometry set for 1410 features
geometry type: LINESTRING
dimension: XY
bbox: xmin: -179.9 ymin: -4.9 xmax: 8 ymax: 70.7
epsg (SRID): 4269
proj4string: +proj=longlat +datum=NAD83 +no_defs
First 5 geometries:
LINESTRING (-89 24, -89.6 24.8, -90 25.4, -90.5...
LINESTRING (-95 11.4, -95.2 11.7, -95.3 12.1, -...
LINESTRING (-79 26.8, -78.5 28, -78.1 29.2, -77...
LINESTRING (-81 26.5, -78.5 28.2, -76.2 30, -73...
LINESTRING (-103 16, -104.1 15.8, -105.1 15.8, ...
我已经在几何列中检查了 NA:
> which(is.na(hurricane_paths$geometry)==T)
integer(0)
plot_sf()
不会返回任何错误消息,但它会在绘图窗格中返回一个空白屏幕,所以这也是不行的。
但是ggplot2很棒,并且返回一个图形,没问题:
> ggplot() +
+ geom_sf(data = hurricane_paths)
Mapview 也很好:> mapview::mapview(hurricane_paths)
但基本plot()
功能仍然顽固。问题可能是什么?
解决方案
我遇到了和你一样的问题,问题似乎在于从点到线串的转换。按照线程Create Multilines from Points 中找到的解决方案,使用 sf package 按 ID 分组,您可能必须使用
summarise(do_union = FALSE) %>%
st_cast("LINESTRING")
在将点数据集转换为线串之前。
我希望它有所帮助。
推荐阅读
- powershell - Get-ADUser 和嵌套组问题
- php - Symfony5 面试问题表,包含 CollectionType 和数据库中的问题
- python - 导入使用 cmake/mingw32-make 编译的 pybind11 模块时出现 ImportError
- spring - 在 Spring Boot 中创建名为“entityManagerFactory”的 bean 时出错
- c - 使用 C 和 OpenMP 进行并行编程
- r - 将前导 NA 单元向左移动,但不是 R 中的内部 NA
- javascript - 当某事无效时会调用`hooks.invalid`吗?
- powershell - 在循环中取消获取凭据
- react-native - Expo / React Native:无法读取未定义的属性“transformFile”
- audio - 如何在 Jetpack Compose 中播放平台 CLICK 声音 按钮单击