我在佛罗里达州有一个干洗设施的 shapefile。我正在使用 shapefile.py 在 Python 中读取文件。我的问题是,虽然文件中的第一个形状看起来是正确的,但之后只有每 5 个形状是正确的。连续提取了四个形状,类型代码无效(应该在 0 到 31 之间)并且没有点信息。以下是部分结果:
Site Name (.record[1]) .shapeType .points
------------------------------------ ----------- --------------------
Granda Dry Cleaners 21 [[783897.335, 215901.765]]
Scotch Dry Cleaners 1093131927 []
J C Cleaners -1191051264 []
Royal Palm Cleaners -1606317767 []
Moorings Plaza Dry Cleaners 1091081765 []
Classic Touch Cleaners 21 [[778662.429, 221265.968]]
The Drycleaner 1093095627 []
Randolphs Alterations & Dry Cleaner -1140719616 []
Pelican French Cleaners 1580547967 []
Town & Country Cleaners 1091080779 []
Discount Dryclean Outlet 21 [[768035.181, 188652.929]]
The Drycleaner Cleaners 1093104359 []
Sample Cleaners -1090387968 []
Parisian Cleaners -1468878813 []
Roberts Cleaners & Tailors 1091022843 []
(注意:我稍微降低了点的精度以使它们适合一条线)。
在我看来,该模式是常规的——一个“有效”记录后跟四个具有无效 shapeType 常量且没有点的记录。
我是 shapefile 处理的新手。这些结果是否表明我可能做错了什么?
更新
下面的代码演示了这个问题(它打印了上面描述的 shapeType 和 points 列):
from shapefile import Reader)
rdr = Reader('drycleaner_list')
for s in rdr.shapes():
print s.shapeType, s.points