Αυτό που έκανα ήταν να ρίξω μια ματιά στη βιβλιοθήκη pyshp
pypi.python.org/pypi/pyshp/1.2.11#examples
την οποία μπορείς να εγκαταστήσεις με pip installer
Μετά κατέβασα ένα αρχείο shp από το internet
www.mapcruzin.com/free-greece-arcgis-maps-shapefiles.htm
αυτό που λέει Greece buildings
Αυτό που θα πρέπει να κάνεις είναι να κάνεις import τη βιβλιοθήκη και να ανοίγεις το αρχείο σου με την κλάση Editor
>>> import shapefile
>>> e = shapefile.Editor('buildings.shp')
>>> e.fields
[('DeletionFlag', 'C', 1, 0), ['osm_id', 'N', 11, 0], ['name', 'C', 48, 0], ['type', 'C', 16, 0]]
>>> shapes=e.shapes()
>>> shapes[3].points
[(23.7365189, 37.9748836), (23.7374004, 37.9747466), (23.7375791, 37.9755834), (23.7366916, 37.9757115), (23.7365189, 37.9748836)]
>>> len(shapes)
1314
>>> shapes[3].bbox
[23.7365189, 37.9747466, 23.7375791, 37.9757115]
>>> shapes[3].parts
[0]
>>> shapes[3].shapeType
5
Μετά πρέπει να δεις από τον τεράστιο όγκο πληροφοριών που έχει μέσα τι θέλεις να αλάξεις
Έστω υποθέτω εγώ τα points των shapes ή το bbox δέν ξέρω
Θα περάσεις όλες τις εγγραφές από το module τροποποίησης που λές έχεις έτοιμο (τι module είναι αυτό python;) για να τις αλλάξεις
με ένα for loop ίσως
for shape in shapes[:5]:
shape.points
[(25.1725661, 35.3367719), (25.172609, 35.3374791), (25.1732442, 35.3374441), (25.1732527, 35.3373531), (25.1751324, 35.337192), (25.1751324, 35.337059), (25.1755959, 35.336982), (25.1755702, 35.3365619), (25.1725661, 35.3367719)]
[(25.1364657, 35.3445645), (25.1371009, 35.3448026), (25.137221, 35.3446555), (25.1373669, 35.3444665), (25.1372296, 35.3443965), (25.1370494, 35.3443965), (25.1366374, 35.3442285), (25.1364657, 35.3445645)]
[(23.9444759, 37.9333225), (23.9449394, 37.9330314), (23.9504326, 37.9387584), (23.9499348, 37.9390563), (23.9484242, 37.9374723), (23.9479521, 37.937743), (23.9456175, 37.9352316), (23.9460466, 37.9349608), (23.9444759, 37.9333225)]
[(23.7365189, 37.9748836), (23.7374004, 37.9747466), (23.7375791, 37.9755834), (23.7366916, 37.9757115), (23.7365189, 37.9748836)]
[(23.7320729, 37.9896021), (23.7318729, 37.988704), (23.7328141, 37.9885686), (23.7327834, 37.9884395), (23.7332171, 37.9883533), (23.7334816, 37.9894053), (23.7330417, 37.989476), (23.7330202, 37.989433), (23.7320729, 37.9896021)]
Εσύ πρέπει να γράψεις shape.points=transformed_points
και στο loop να περάσεις όλα τα στοιχεία όχι τα 5 όπως κάνω εγώ
στο τέλος
Εγώ το δοκίμασα με python 3.5.2