Tạo shapefile từ giá trị lat / long bằng ArcPy? [đóng cửa]


10

Làm cách nào để tạo shapefile bằng Python trong ArcGIS 10?

Tôi có lat & lâu.

Từ đây, tôi cần mã Python sẽ tạo một shapefile trong ArcGIS Desktop 10.

Câu trả lời:


15

Để tạo điểm:

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")

Nó sẽ trả về một tin nhắn như thế này:

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

6

Một lựa chọn khác là chỉ sử dụng các công cụ xử lý địa lý phức tạp hiện có, xem mã dưới đây.

   # 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

Bạn có thể tạo một shapefile trong Python bằng công cụ Tạo lớp tính năng . Có một ví dụ ở cuối trang.

Để điền vào shapefile với dữ liệu lat & long của bạn, bạn có thể sử dụng một Con trỏ chèn .

Có lẽ bạn có thể tải dữ liệu lat & long của mình dưới dạng danh sách vào Python, sau đó lặp qua mảng điền vào các hàng của shapefile mới của bạn bằng con trỏ chèn.

Một danh sách tọa độ python có thể được xây dựng như thế này:

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

Sau đó, để lặp qua các tọa độ trong danh sách (và in chúng chẳng hạn), hãy làm điều này:

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

Để thêm một lớp vào tệp mxd, hãy xem Thêm lớp shapefile hoặc lớp tính năng dưới dạng lớp trong ArcGIS Desktop bằng Python / ArcPy?

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.