การสร้าง shapefile จากค่า lat / long โดยใช้ ArcPy? [ปิด]


10

ฉันจะสร้าง Shapefile โดยใช้ Python ใน ArcGIS 10 ได้อย่างไร

ฉันมี lat & long

จากนี้ฉันต้องการรหัส Python ซึ่งจะสร้าง shapefile ใน ArcGIS Desktop 10

คำตอบ:


15

สำหรับการสร้างคะแนน:

ptList =[[20.000,43.000],[25.500, 45.085],[26.574, 46.025], [28.131, 48.124]]
pt = arcpy.Point()
ptGeoms = []
for p in ptList:
    pt.X = p[0]
    pt.Y = p[1]
    ptGeoms.append(arcpy.PointGeometry(pt))

arcpy.CopyFeatures_management(ptGeoms, r"C:\Temp\test.shp")

มันจะส่งคืนข้อความเช่นนี้:

<Result 'C:\\Temp\\test.shp'>

6

อีกตัวเลือกหนึ่งก็คือใช้เครื่องมือประมวลผลการทำอาร์คpyที่มีอยู่ดูรหัสด้านล่าง

   # Import arcpy module
import arcpy


# Local variables:
table_dbf = "C:\\temp\\table.dbf"
table_Layer2 = "table_Layer2"
point3_shp = "C:\\temp\\point3.shp"

# Process: Make XY Event Layer
arcpy.MakeXYEventLayer_management(table_dbf, "x_coord", "y_coord", table_Layer2, "", "")

# Process: Copy Features
arcpy.CopyFeatures_management(table_Layer2, point3_shp, "", "0", "0", "0")

mxd = arcpy.mapping.MapDocument(r"C:\temp\Untitled.mxd")
df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0]
addLayer = arcpy.mapping.Layer(point3_shp)
arcpy.mapping.AddLayer(df, addLayer, "BOTTOM")
mxd.saveACopy(r"C:\temp\Untitled1.mxd")

6

คุณสามารถสร้าง Shapefile ใน Python ได้โดยใช้เครื่องมือCreate Feature Class มีตัวอย่างที่ด้านล่างของหน้า

เพื่อเติม shapefile ที่มีข้อมูล lat และยาวของคุณคุณสามารถใช้แทรกเคอร์เซอร์

บางทีคุณสามารถโหลดข้อมูล lat & long เป็นรายการลงใน Python จากนั้นวนซ้ำผ่านอาร์เรย์ที่เติมแถวของ Shapefile ใหม่ของคุณด้วยเคอร์เซอร์แทรก

รายการไพ ธ อนของพิกัดสามารถสร้างได้ดังนี้:

latLonList = [[40.000,-75.000],[39.998,-75.432],[39.981,-75.343]]

จากนั้นทำซ้ำผ่านพิกัดในรายการ (และพิมพ์ตัวอย่าง) ทำสิ่งนี้:

for coord in latLonList:
    print "lat: " + str(coord[0])
    print "lon: " + str(coord[1])

ในการเพิ่มเลเยอร์ลงในไฟล์ mxd ให้ดูที่การเพิ่มรูปร่างไฟล์หรือคลาสคุณลักษณะเป็นเลเยอร์ใน ArcGIS Desktop โดยใช้ Python / ArcPy?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.