পাইথনে আকৃতির ফাইলগুলি পড়ার জন্য অনেকগুলি মডিউল রয়েছে, আরকিপির চেয়ে পুরানো, পাইথন প্যাকেজ সূচক (পাইপিআই): শেফফায়ালগুলি দেখুন । জিআইএস এসইতেও অনেকগুলি উদাহরণ রয়েছে ( উদাহরণস্বরূপ [পাইথন] ফিয়োনার সন্ধান করুন )
সমস্ত জ্যামিতি, ক্ষেত্রগুলি এবং অনুমানগুলি পড়তে পারে।
তবে পাইসএল হিসাবে অন্যান্য মডিউলগুলি : পাইথন স্পেসিয়াল অ্যানালাইসিস লাইব্রেরি , কার্টোপি (যা পাইশপ ব্যবহার করে ) বা ম্যাটপ্ল্লোলিব বেসম্যাপ অন্যান্য জিনিসগুলির মধ্যেও শেফফাইলগুলি পড়তে পারে।
ব্যবহারের সবচেয়ে সহজ পদ্ধিতি হল Fiona, তবে যদি আপনি শুধুমাত্র ArcPy, ব্যবহার জানেন pyshp , কারণ osgeo এবং Fiona, প্রয়োজন যে GDAL সি / সি ++ লাইব্রেরি ইনস্টল করা, GeoPandas প্রয়োজন পান্ডাস মডিউল এবং PySAL অত্যন্ত বড় (অনেক, অনেক অন্যদের চিকিত্সা)
আপনি যদি কেবল শেফফিলের বিষয়বস্তু পড়তে চান তবে আপনার জটিল জিনিসগুলির দরকার নেই, কেবল জিপ ইন্টারফেস প্রোটোকল ( জিওজেএসএন ) ব্যবহার করুন আরকিপিতে ( অর্কিপাই: অ্যাশপ )
ফিওনা (পাইথন অভিধান হিসাবে) সহ:
import fiona
with fiona.open('a_shape.shp') as shp:
# schema of the shapefile
print shp.schema
{'geometry': 'Point', 'properties': OrderedDict([(u'DIP', 'int:2'), (u'DIP_DIR', 'int:3'), (u'TYPE', 'str:10')])}
# projection
print shp.crs
{u'lon_0': 4.367486666666666, u'ellps': u'intl', u'y_0': 5400088.438, u'no_defs': True, u'proj': u'lcc', u'x_0': 150000.013, u'units': u'm', u'lat_2': 49.8333339, u'lat_1': 51.16666723333333, u'lat_0': 90}
for feature in shp:
print feature
{'geometry': {'type': 'Point', 'coordinates': (272070.600041, 155389.38792)}, 'type': 'Feature', 'id': '0', 'properties': OrderedDict([(u'DIP', 30), (u'DIP_DIR', 130), (u'TYPE', u'incl')])}
{'geometry': {'type': 'Point', 'coordinates': (271066.032148, 154475.631377)}, 'type': 'Feature', 'id': '1', 'properties': OrderedDict([(u'DIP', 55), (u'DIP_DIR', 145), (u'TYPE', u'incl')])}
{'geometry': {'type': 'Point', 'coordinates': (273481.498868, 153923.492988)}, 'type': 'Feature', 'id': '2', 'properties': OrderedDict([(u'DIP', 40), (u'DIP_DIR', 155), (u'TYPE', u'incl')])}
পাইশপ সহ (পাইথন অভিধান হিসাবে)
import shapefile
reader= shapefile.Reader("a_shape.shp")
# schema of the shapefile
print dict((d[0],d[1:]) for d in reader.fields[1:])
{'DIP_DIR': ['N', 3, 0], 'DIP': ['N', 2, 0], 'TYPE': ['C', 10, 0]}
fields = [field[0] for field in reader.fields[1:]]
for feature in reader.shapeRecords():
geom = feature.shape.__geo_interface__
atr = dict(zip(fields, feature.record))
print geom, atr
{'type': 'Point', 'coordinates': (272070.600041, 155389.38792)} {'DIP_DIR': 130, 'DIP': 30, 'TYPE': 'incl'}
{'type': 'Point', 'coordinates': (271066.032148, 154475.631377)} {'DIP_DIR': 145, 'DIP': 55, 'TYPE': 'incl'}
{'type': 'Point', 'coordinates': (273481.498868, 153923.492988)} {'DIP_DIR': 155, 'DIP': 40, 'TYPE': 'incl'}
অসজিও / ওগারের সাথে (পাইথন অভিধান হিসাবে)
from osgeo import ogr
reader = ogr.Open("a_shape.shp")
layer = reader.GetLayer(0)
for i in range(layer.GetFeatureCount()):
feature = layer.GetFeature(i)
print feature.ExportToJson()
{"geometry": {"type": "Point", "coordinates": [272070.60004, 155389.38792]}, "type": "Feature", "properties": {"DIP_DIR": 130, "DIP": 30, "TYPE": "incl"}, "id": 0}
{"geometry": {"type": "Point", "coordinates": [271066.032148, 154475.631377]}, "type": "Feature", "properties": {"DIP_DIR": 145, "DIP": 55, "TYPE": "incl"}, "id": 1}
{"geometry": {"type": "Point", "coordinates": [273481.49887, 153923.492988]}, "type": "Feature", "properties": {"DIP_DIR": 155, "DIP": 40, "TYPE": "incl"}, "id": 2}
জিওপ্যান্ডাস (প্যান্ডাস ডেটাফ্রেম হিসাবে) সহ
import geopandas as gp
shp = gp.GeoDataFrame.from_file('a_shape.shp')
print shp
DIP_DIR DIP TYPE geometry
0 130 30 incl POINT (272070.600041 155389.38792)
1 145 55 incl POINT (271066.032148 154475.631377)
2 155 40 incl POINT (273481.498868 153923.492988)
জিওপ্যান্ডাসে নোট করুন আপনার সাথে এটিতে ফিওনা এবং জিডিএল এর পুরানো সংস্করণ ব্যবহার করতে হবে বা এটি ইনস্টল হবে না। জিডিএল: 1.11.2 ফিয়োনা: 1.6.0 জিওপ্যান্ডাস: 0.1.0.dev-
ওয়েবে এবং এমনকি বইগুলিতে অনেকগুলি টিউটোরিয়াল রয়েছে ( পাইথন জিওপ্যাটিয়াল ডেভলপমেন্ট , পাইথনের সাথে জিওপ্যাটিয়াল বিশ্লেষণ শেখা এবং পাইথনের সাথে জিওপ্রসেসিং , প্রেসে)
আরও সাধারণভাবে, আপনি যদি আরকপাই ছাড়াই পাইথন ব্যবহার করতে চান তবে পাইথন ব্যবহার করে শেফফিলের সাধারণ থিম্যাটিক ম্যাপিংটি দেখুন ?