You are on page 1of 29

Machine Translated by Google

Bắt đầu với Python trong


ArcGIS Pro
Machine Translated by Google

ArcPy là gì?
ArcPy là một mô-đun Python
tương tác với các công cụ
trong arctoolbox là một phần
của ArcGIS Pro và ArcGIS Desktop.
Mô-đun này cho phép người dùng
truy cập các công cụ xử lý địa
lý có sẵn trong ArcGIS Pro và
Desktop.
Machine Translated by Google

Python trong ArcGIS Pro


Machine Translated by Google

Cửa sổ Python trong ArcGIS Pro


Machine Translated by Google

In văn bản
in ('Chào mừng bạn đến với python')

Sử dụng một biến

In văn bản với một biến

văn bản = ('Chào mừng bạn đến với

python') in (văn bản)


Machine Translated by Google

Thuộc tính

Mở bảng thuộc tính để xem


có bao nhiêu bản ghi trong
các con đường
Machine Translated by Google

Chúng tôi nhận được thông tin tương tự bằng cách sử dụng

Nhận công cụ Count từ arctoolbox vào cửa sổ

python
Machine Translated by Google

Gán và in một biến

đếm = arcpy.manager.GetCount('centreline') print(count)


Machine Translated by Google

Hộp công cụ ArcGIS Trợ giúp


Machine Translated by Google

Khi sử dụng các công cụ trợ giúp có sẵn tại dòng lệnh
Machine Translated by Google

Bằng cách nhấp vào Dấu hỏi, nó sẽ đưa bạn đến

phần trợ giúp trực tuyến của công cụ


Machine Translated by Google
Machine Translated by Google

Liệt kê các lớp tính năng trong một Thư mục

arcpy.env.workspace = "C:/Bits_Bytes/"

fclist = arcpy.ListFeatureClasses()

print(fclist)

Mã cửa sổ Python và đầu ra


Machine Translated by Google

Thư mục Python cho các chương trình độc lập


Machine Translated by Google

Thiết lập phiên bản Python trong PyScripter

C:\Tệp chương trình\ArcGIS\Pro\bin\Python\envs\arcgispro-py3


Machine Translated by Google

Kiểm tra chiếu


nhập arcpy Được chạy trong PyScripter

từ arcpy nhập env


env.workspace = "C:/Bits_Bytes/"
prjfile = "C:/Bits_Bytes/Python/
Schools.prj"Spatial_ref =
arcpy.SpatialReference(prjfile) print ("hình chiếu là
",Spatial_ref.name , " và sẽ được sử dụng để kiểm tra hình chiếu
của các shapefile trong thư mục này \n ") fclass =
arcpy.ListFeatureClasses() print ("Những shapefile này không có
hình chiếu UTM") cho fc trong fclass: Spatial_ref = arcpy.Describe

(fc).spatialReference nếu không gian_ref.name !=


"NAD_1983_UTM_Zone_17N":
in (fc)
Machine Translated by Google
Machine Translated by Google

Shapefile dự án

Quản lý dự án (in_dataset, out_dataset,


out_coor_system, {transform_method}, {in_coor_system})

• in_dataset in_feat đây là shapefile đầu vào sẽ


được chiếu • out_dataset out_feat đây là
shapefile đầu ra sẽ out_coord_system
là shapefile được
out_coord
chiếu • là phép
chiếu sẽ được gán cho shapefile mới. Điều này được
xác định bằng cách sử dụng
đóhàm
phép
SpatialReference
chiếu mới sẽ làtrong
Nad
1983 UTM Vùng 17
Machine Translated by Google

Mối liên hệ không gian

Có nhiều cách để xác định các phép chiếu trong


arcgis. Có thể xác định tham chiếu không gian
bằng cách sử dụng tệp prj từ tệp hình dạng, từ
việc nhập hình chiếu thực tế, chẳng hạn như 'NAD
1983 UTM Vùng 17N' hoặc bằng cách chỉ định số
EPSG, chẳng hạn như 26917.
Machine Translated by Google

Dự án Shapefile

Trong ArcGIS Pro, nhập mã bên dưới vào cửa sổ python. Thao tác này
sẽ chiếu tệp hình dạng bằng cách gán cho lệnh SpatialReference một
định nghĩa phép chiếu và sau đó sử dụng project_man Quản lý để
chiếu tệp hình dạng.

nhập arcpy
từ arcpy nhập env
env.overwriteOutput = True
in_feat = "C:/Bits_Bytes/Wards.shp"
out_feat = "C:/Bits_Bytes/PRJ/Wards.shp"
out_coord = arcpy.SpatialReference('Nad 1983 UTM Vùng 17N' )
arcpy.Project_manager(in_feat, out_feat,out_coord)
Machine Translated by Google

nhập arcpy từ
Dự án Shapefiles trong một
arcpy nhập env
Danh mục
env.overwriteOutput = True

env.workspace = "C:/Bits_Bytes/" Điều này sẽ được chạy từ pyScripter


prjfile = "C:/Bits_Bytes/

Schools.prj"Spatial_ref =

arcpy.SpatialReference(prjfile) print ("phép chiếu cho trường học.

shp là ",Spatial_ref.name) fclass = arcpy.ListFeatureClasses() cho


fc trong fclass:

Spatial_ref = arcpy.Describe(fc).spatialReference print

(spatial_ref.name, " là phép chiếu


ifSpatial_ref.name
cho ", fc) ==

"NAD_1983_UTM_Zone_17N": print (fc, "... sẽ không được chiếu

\n" ) khác:

print (fc, "...đang được chiếu")

out_dir = "C:/Bits_Bytes/PRJ/"

out_coord = arcpy.SpatialReference('NAD 1983 UTM Vùng 17N') in_feat = fc

out_feat = out_dir + fc arcpy.Project_manager( in_feat,out_feat,out_coord)


Machine Translated by Google

Chọn dữ liệu để cắt

Sử dụng công cụ chọn, chúng

ta có thể thấy mã sql này

Điều này sẽ không hoạt động

trong python!
Machine Translated by Google
Machine Translated by Google

Sử dụng Trình tạo mô hình để lấy mã python


Machine Translated by Google
Machine Translated by Google

Từ công cụ chọn

TÊN = 'St. Paul's (21)'

Từ Người xây dựng mô hình

"TÊN = 'Thánh Paul''s (21)'"


Machine Translated by Google

Cú pháp SQL từ Trình tạo mô hình

arcpy.analysis.Select(in_features=Wards,
out_feature_class=clip_shp, where_clause="NAME =
'St. Paul''s (21)'")
Machine Translated by Google

Select_analysis trích xuất các tính năng từ lớp

tính năng đầu vào hoặc lớp tính năng đầu vào,

thường sử dụng truy vấn chọn hoặc Truy vấn có cấu trúc

Biểu thức ngôn ngữ (SQL) và lưu trữ chúng trong một

lớp tính năng đầu ra

Select_analysis (in_features, out_feature_class, {where_clause})


Inf_features Wards.shp
Out_feature_class Clip.shp Where
mệnh đề "NAME = 'St. Paul''s (21)'"

Điều này sẽ được thực hiện trong ArcGIS Pro

nhập arcpy từ
arcpy nhập env
env.overwriteOutput = True
env.workspace = "C:/Bits_bytes/PRJ"
arcpy.Select_analysis('Wards',"C:/Bits_bytes/PRJ/Clip.shp","NAME = 'St. Paul's(22)'")
Machine Translated by Google

dữ liệu clip

nhập arcpy Được chạy trong PyScripter

từ arcpy nhập env


env.overwriteOutput = True
arcpy.env.workspace = "C:/Bits_bytes/PRJ/"
outclip = arcpy.CreateFolder_man Quản lý("C:/Bits_bytes/","CLIPPED")
fclist = arcpy.ListFeatureClasses( ) cho fc trong fclist: in_feat = fc if
in_feat != "Wards.shp" và in_feat != "Clip.shp": print ("C:/Bits_bytes/

CLIPPED/" + fc, " sẽ bị cắt bớt \n") out_feat = "C:/Bits_bytes/CLIPPED/"


+ fc print(out_feat) clipper = "C:/Bits_bytes/PRJ/Clip.shp"
arcpy.Clip_analysis("C:/Bits_bytes/PRJ/" + fc,clipper,out_feat )

You might also like