小编Jor*_*t G的帖子

sf:将几何中的纬度/经度写入单独的列并保留 ID 列

我有一个来自 shapefile 的多边形 ID 和它们在几何列中的中心点的 df:

# A tibble: 3 x 2
     ID     geometry
  <dbl> <POINT [°]>
1     1 (117.2 31.8)
2     2 (116.4 40.1)
3     4   (117.9 26)
Run Code Online (Sandbox Code Playgroud)

我想将纬度/经度值放入单独的列中,所以我这样做:

library(sf)
centres<- as.data.frame(st_coordinates(df))
Run Code Online (Sandbox Code Playgroud)

这个新的“中心”数据框具有 lat&long 值,但缺少 ID 列。我该如何保留它,或者是否有另一种方法可以将 lat&long 值从几何列中提取到单独的列中,同时将 ID 保持在相同的 df 中?

数据帧的 dput 是:

df <- structure(list(ID = c(1, 2, 4), 
      geometry = structure(list(structure(c(117.2, 31.8), 
      class = c("XY", "POINT", "sfg")), structure(c(116.4, 40.1), 
      class = c("XY", "POINT", "sfg")), structure(c(117.9, 26.0), 
      class = c("XY", "POINT", "sfg"))), class = c("sfc_POINT", …
Run Code Online (Sandbox Code Playgroud)

r r-sf

11
推荐指数
3
解决办法
7319
查看次数

Maplotlib 和底图:无法导入名称“dedent”

我正在尝试在底图叠加层上绘制网络。我有包裹:

  • 底图=1.3.0=py36ha7665c8_0
  • matplotlib=3.3.1=0
  • matplotlib-base=3.3.1=py36hba9282a_0
  • 网络x=2.5=py_0

当我只运行线路时
from mpl_toolkits.basemap import Basemap

我得到
from matplotlib.cbook import dedent
ImportError: cannot import name 'dedent'

我已经尝试了几个不同版本的软件包,但无法找到正确的功能组合。
任何人对 matpltlib 和底图的组合有任何想法吗?或者另一种在底图上绘制我的网络的方法?

matplotlib matplotlib-basemap

4
推荐指数
2
解决办法
7895
查看次数

标签 统计

matplotlib ×1

matplotlib-basemap ×1

r ×1

r-sf ×1