- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 Python 和 pyshp库中,我尝试从下面的数据创建一个 shapefile(存储在列表中):
edge_list = [
[-40.5, -20.666],
[-39.849998, -18.700001],
[-39.816002, -19.6],
[-40.071999, -19.391001],
[-40.150002, -19.933001],
[-39.733002, -18.533001],
[-39.833, -18.733],
[-39.708, -18.419001],
[-39.370998, -17.891001],
[-39.200001, -17.417],
[-39.216999, -17.299999],
[-39.167, -17.083],
[-39.049999, -16.433001],
[-38.932999, -13.967],
[-39.083, -16.583],
[-39.0, -13.916],
[-38.900002, -13.6],
]
这是我的代码片段(其中edge_list是上面的列表):
w = shapefile.Writer()
w.line(parts=[edge_list])
w.field("COMMON_ID", 'C')
w.save("test")
我明白了:
但我想得到这个:
有什么提示吗?
编辑:这是完整的测试代码,但没有太多内容。文件“temp.csv”仅包含上面显示的两列点,以逗号分隔,并带有额外的标题行(x,y)。
import csv
import shapefile
data = csv.reader(open("test.csv", "rb"), delimiter = ',')
data.next() # skip header line
edge_list = []
for row in data:
edge_list.append([float(row[0]), float(row[1])])
for e in range(len(edge_list)):
print "x=", edge_list[e][0], "y=", edge_list[e][1]
w = shapefile.Writer()
w.line(parts=[edge_list])
w.field("COMMON_ID", 'C')
w.save("test")
最佳答案
免责声明:我没有使用过 shapefile 或 pyshp。但我知道画线的方法。
我看到的是它按照您输入点的顺序绘制线条。它将点连接起来,这就是点的顺序。您需要做的是重新排序 edge_list
中的点。
就您而言,如果您的 y 变量是有序的,您的点看起来会很好。
所以,尝试替换这一行:
w.line(parts=[edge_list])
这样:
w.line(parts=sorted(edge_list, key=lambda point: point[1]))
这将按 y 变量对您的点进行排序,并应按照您想要的方式绘制线条。
关于python - 使用 pyshp 创建直线段的形状文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45820547/
我对 Python(实际上是任何编程)相当陌生,但一直在我正在学习的类(class)中使用 Jupyter 笔记本。 我需要使用 pyshp,所以我使用 pip install 安装它,它似乎成功了。
使用 Python 和 pyshp库中,我尝试从下面的数据创建一个 shapefile(存储在列表中): edge_list = [ [-40.5, -20.666], [-39.84
我对 Python 相当陌生,所以我怀疑我遇到的这个问题是出于天真,但任何帮助将不胜感激。 目前我有一个小型的沿海演化模型。最初,使用 NumPy 在某些约束内沿着定义的 x 轴随机生成 100 个点
我的线正在连接,即使我没有将它们设置为多边形。 我的脚本基于 pyshp 包。 我的脚本如下所示: w=Shapefile.Writer() #shapetype 11 is a polylineZ
我是一名优秀的程序员,十分优秀!