问题标签 [pyshp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何重新投影 shapefile?
我正在尝试使用 python 代码将我的 shapefile 的投影从“epsg:26741”更改为“epsg:4326”。我已经在网上查找了如何执行此操作并找到了一些代码,但是当我运行代码时,它会抛出一条错误消息。这在下面的代码中专门抛出:
这会生成以下错误消息:
python - 如何将 shapefile 几何写入或保存为 float32 数据类型?
我目前正在使用 python 和 geopandas、shapely 和 pyshp 研究 shapefile 的数据结构。要最小化 shapefile 的总大小,几何列的数据类型应为 float32。我已经尝试过多次使用 shapely 和 pyshp 将 flot64 转换为 float32,但我找不到任何方法。有什么方法可以更改 shapefile 中几何的数据类型?
当我使用 shapely 库编写 2D 多边形 shapefile 时,即使我使用 2 个 float32 numpy 数组作为输入坐标,它也会自动将多边形的数据类型更改为 float64。和 pyshp 也是。
我用谷歌搜索找到方法,找不到任何解决方案。可能是因为根据 ESRI shapefile Technical Description,shapefile 使用 float64 作为默认多边形数据类型。
record - 使用 pyshp jupyter 读取 shp 文件
最后我得到了这个错误 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xba in position 0: invalid start byte
我想怎么解决这个问题
python - pyshp 在 shapefile 中生成随机点
我想使用 pyshp 在特定的邮政编码制表区域 shapefile 中生成 1000 个随机点。我的代码是:
我该如何从这里开始?如果这是基本的,我深表歉意,我主要是 R 用户,使用该语言非常容易。从https://www.census.gov/cgi-bin/geo/shapefiles/index.php?year=2019&layergroup=ZIP+Code+Tabulation+Areas下载的 Shapefile
python - 如何将数据附加到shapefile?
我有一个形状文件。以及那里的一些数据。这是我创建它的方式:
现在,我想将数据附加到这个 shapefile。怎么做?
谢谢
python - 位于特定 shapefile 中的标签坐标
我有一个个人数据框,每个人都有 X 和 y 坐标,并且我有一个包含多个多边形的 .shp 文件。
个人数据框如下所示:
ind_ID | x_坐标 | y_坐标 |
---|---|---|
1 | 2.333 | 6.572711 |
2 | 3.4444 | 6.57273 |
.shp 文件如下所示:
代码 | 形状长度 | 形状区域 |
---|---|---|
222 | .22 | .5432 |
2322 | .54322 | .4342 |
122 | .65656 | .43 |
2122 | .5445 | .5678 |
我想要做的是在数据框中添加一个新列,以便使用该坐标位于其中的 .shp 文件的链接代码标记每个坐标。为此,我构建了以下代码:
我使用 read_shapefile 函数查找每个特征内的所有 x,y 点,输出 DF
代码 | 形状长度 | 形状区域 | 编码 |
---|---|---|---|
222 | .22 | .5432 | 3.23232,2.72323,3.931226,2.543,3.435534 .... |
2322 | .54322 | .4342 | 3.23232,2.72322,3.111226,2.343,3.12312 ... |
122 | .65656 | .43 | 3.2323,2.23325,3.1212,2.1221,3.12321 ... |
2122 | .5445 | .5678 | 3.9232,2.23232,2.931226,1.2123,3.213 ... |
下一步是检查每个induvial,无论它是否落在任何cooded点内,如果是,则将新列添加到Individual df包含形状文件的相应代码。我需要这部分的帮助^^",我开始检查 sh 数据坐标中的 x,y
我无法检查,因为有错误。输出需要是:个人数据框看起来像:
ind_ID | x_坐标 | y_坐标 | 代码 |
---|---|---|---|
1 | 2.333 | 6.572711 | 222 |
2 | 3.4444 | 6.57273 | 122 |