Skip to content

Commit

Permalink
Modifies convertShapefile.py to use cmd line args.
Browse files Browse the repository at this point in the history
Also cleans up some of the python code a bit.
  • Loading branch information
GraylinKim committed Oct 23, 2012
1 parent 3618b90 commit c029615
Showing 1 changed file with 20 additions and 102 deletions.
122 changes: 20 additions & 102 deletions convertShapefile.py
@@ -1,116 +1,34 @@
import shapefile
import csv

import os,sys

def main():
print "Started"
inputfolders=["C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36007_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36009_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36011_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36013_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36015_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36017_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36019_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36021_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36023_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36025_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36027_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36029_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36031_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36033_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36035_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36037_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36039_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36041_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36043_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36045_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36047_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36049_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36051_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36053_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36055_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36057_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36059_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36061_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36063_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36065_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36067_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36069_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36071_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36073_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36075_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36077_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36079_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36081_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36083_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36085_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36087_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36089_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36091_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36093_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36095_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36097_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36099_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36101_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36103_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36105_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36107_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36109_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36111_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36113_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36115_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36117_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36119_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36121_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36123_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36001_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36003_addrfeat",
"C:\Users\Bobby\Downloads\NY_addrfeat\tl_2011_36005_addrfeat"]
for each in inputfolders:
convertShapefile(each)

for path in os.listdir(os.path.abspath(sys.argv[1])):
path = os.path.join(sys.argv[1],path)
if os.path.isdir(path):
convertShapefile(path)


def countMax(folderPath, max):
sf = shapefile.Reader(folderPath.replace('\t','\\t')+"\\t"+folderPath.rsplit("\t")[1])
shapes = sf.shapes()
for each in shapes:
if len(each.points)>max:
max=len(each.points)
print max
def convertShapefile(folderPath):
sf = shapefile.Reader(folderPath.replace('\t','\\t')+"\\t"+folderPath.rsplit("\t")[1])
shp_path = os.path.join(folderPath, os.path.basename(folderPath)+'.shp')
sf = shapefile.Reader(shp_path)
shapes = sf.shapes()
fields=sf.fields[1:]
records=sf.records()
fullfields=[]
for each in fields:
fullfields.append(each)
fullfields.append("[BBOX text")
fullfields.append("NUMPARTS ")
fullfields.append("SHAPETYPE")
fullfields.append("LATLONGPAIRS")
outputFile=open("C:\Users\Bobby\Downloads\NY_addrfeat\CSV\TIGER_NY.csv", "ab")
output=csv.writer(outputFile)
#output.writerow(fullfields)
for i in range(len(records)):
row=[]
for j in range(len(fields)):
row.append(records[i][j])
newbbox=""
for each in shapes[i].bbox:
newbbox+=str(each)+";"
row.append(newbbox[:-1])
row.append(shapes[i].parts)
row.append(shapes[i].shapeType)
pointString=""
for each in shapes[i].points:
pointString+="("+str(each[1])+";"+str(each[0])+"):"
row.append(pointString[:-1])
output.writerow(row)
outputFile.close()
fullfields=records[:len(fields)]+["BBOX text","NUMPARTS","SHAPETYPE","LATLONGPAIRS"]

with open(sys.argv[2], "ab") as outputFile:
csv_writer = csv.writer(outputFile)
# csv_writer.writerow(fullfields)
for shape, record in zip(shapes, records):
bbox = ";".join(str(point) for point in shape.bbox)
num_parts = len(shape.parts)
shape_type = shape.shapeType
point_str = ":".join("({0};{1})".format(p[1],p[0]) for p in shape.points)
csv_writer.writerow(record+[bbox, num_parts,shape_type,point_str])

print "done"


if __name__ == "__main__":
main()

0 comments on commit c029615

Please sign in to comment.