يسمح لك ArcGIS Notebooks بتحميل ملفات الشكل وقاعدة البيانات الجغرافية الملفية التي يمكن الوصول إليها داخل Notebooks لاستخدامها مع ArcPy.
تحميل مجموعات البيانات لاستخدامها في دفتر ملاحظات
لتحميل ملفات الشكل أو قواعد البيانات الجغرافية الملفية لاستخدامها مع ArcPy في Notebooks، قم بما يلي:
- اضغط مجموعة البيانات التي تريد تحميلها في ملف .zip.
- في محرر دفتر الملاحظات، انقر على علامة تبويب الملفات.
- في علامة تبويب الملفات، استعرض إلى /arcgis/home.
- انقر فوق اختيار ملف وحدد ملف .zip لمجموعة البيانات.
- انقر على تحميل.
- في Notebooks، استخدم إحدى الطرق التالية لفك ضغط الملف:
- استخدام عبارات IPython المذهلة من داخل خلية دفتر الملاحظات.
!unzip /arcgis/home/watersheds.zip -d /arcgis/home
- استخدم الوحدة النمطية Python Zip لفك ضغط الملف.
import zipfile with zipfile.ZipFile("/arcgis/home/watersheds.zip", "r") as zip_ref: zip_ref.extractall("/arcgis/home")
- استخدام عبارات IPython المذهلة من داخل خلية دفتر الملاحظات.
لمعرفة المزيد حول استخدام ArcPy في Notebooks، راجع استخدام ArcPy في دفتر الملاحظات Notebooks.
راجع مجموعات البيانات المحملة باستخدام ArcPy في دفتر ملاحظات
بمجرد تحميل ملف الشكل أو قاعدة البيانات الجغرافية للملف، يمكنك الوصول إليه من Notebooks.
استخدم ملف الشكل المحمّل باستخدام ArcPy
توضح الخطوات التالية سير عمل مثال لاستخدام أداة نطاق ArcPy مع ملف شكل تم تحميله:
- قم بتنزيل نموذج مجموعة البيانات من صفحة عنصر مجموعة بيانات بدء استخدام Python .
- قم بتحميل ملف .zip إلى مساحة عمل Notebooks باستخدام الخطوات المذكورة في قسم تحميل مجموعات البيانات لاستخدامها في Notebooks أعلاه.
- استيراد ArcGIS API for Python وArcPy.
from arcgis.gis import GIS gis = GIS("home") import arcpy
- فك ضغط مجموعة البيانات التي قمت بتحميلها إلى دليل مساحة العمل.
!unzip /arcgis/home/PythonStart.zip -d /arcgis/home
- عيّن مساحة عمل ArcPy إلى مسار الدليل للملف المستخرج.
arcpy.env.workspace = "/arcgis/home/PythonStart"
- أنشئ نطاقًا بـ 500 متر حول كل محطة إطفاء في الملف fire_stations.shp.
result = arcpy.analysis.Buffer("fire_stations.shp", "fire_stations_500m", "500 METERS")
- إنشاء وصف مجموعة بيانات ملف شكل النطاق الناتجة وطباعته.
# Describe the resulting shapefile dataset desc = arcpy.Describe("fire_stations_500m.shp") # Print dataset properties print(f"Dataset Type: {desc.datasetType}") print(f"Shape Type: {desc.shapeType}") print(f"Feature Type: {desc.featureType}") print(f"Spatial Index: {desc.hasSpatialIndex}") print(f"Spatial reference name: {desc.spatialReference.name}") print(f"Extent:\n\tXMin: {desc.extent.XMin}\n\tXMax: {desc.extent.XMax}") print(f"\tYMin: {desc.extent.YMin}\n\tYMax: {desc.extent.YMax}")
- طباعة أسماء وأنواع الحقول في ملف شكل النطاق.
for field in desc.fields: print("%-22s %s %s" % (field.name, ":", field.type))
- أنشئ ملف .zip لمجموعة بيانات ملف شكل النطاق.
import os import fnmatch import zipfile # The path for listing items path = '/arcgis/home/PythonStart/' os.chdir(path) # List of files in complete directory file_list = [] # Loop to extract files containing word "fire_stations_500m" for path, folders, files in os.walk(path): for file in files: if fnmatch.fnmatch(file, '*fire_stations_500m*'): file_list.append(file) with zipfile.ZipFile('/arcgis/home/fire_stations_500m.zip', 'w') as zipF: for file in file_list: zipF.write(file, compress_type=zipfile.ZIP_DEFLATED)
- انشر ملف شكل النطاق كطبقة معلم مستضافة.
item = gis.content.add({}, '/arcgis/home/fire_stations_500m.zip') published_item = item.publish() published_item.share(everyone=True) display(published_item)
- احذف ملف شكل النطاق.
arcpy.management.Delete("fire_stations_500m.shp")
استخدام قاعدة بيانات جغرافية ملف تم تحميلها مع ArcPy
توضح الخطوات التالية مثال على سير عمل لتحميل قاعدة بيانات جغرافية ملفية لاستخدامها مع ArcPy.
- تنزيل نموذج مجموعة البيانات من صفحة عنصر قاعدة البيانات الجغرافية لسنغافورة.
- قم بتحميل ملف .zip الذي يحتوي على قاعدة البيانات الجغرافية الملفية في Notebooks باستخدام الخطوات المذكورة في تحميل مجموعات البيانات لاستخدامها في دفتر الملاحظات Notebooks أعلاه.
- استيراد ArcGIS API for Python وArcPy.
from arcgis.gis import GIS gis = GIS("home") import arcpy
- فك ضغط مجموعة البيانات التي حملتها إلى دليل مساحة العمل.
!unzip /arcgis/home/Singapore_Data.gdb.zip -d /arcgis/home
- عيّن مساحة عمل ArcPy إلى مسار الدليل للملف المستخرج.
arcpy.env.workspace = "/arcgis/home/Singapore_Data.gdb"
- أدرج أسماء فئات المعالم المضمنة في قاعدة البيانات الجغرافية للملف.
singapore_data = arcpy.ListFeatureClasses() singapore_data
- أدرج الحقول الموجودة داخل إحدى تصنيفات المعالم.
singapore_tourist_attractions = singapore_data[2] singapore_tourist_attractions_fields = [] fields = arcpy.ListFields(singapore_tourist_attractions) for field in fields: if (field.name != 'Shape'): singapore_tourist_attractions_fields.append(field.name) singapore_tourist_attractions_fields
- لكل صف في مجموعة البيانات، اطبع قيم حقل معرف الكائن واسم المكان والعنوان.
with arcpy.da.SearchCursor(singapore_tourist_attractions, singapore_tourist_attractions_fields) as cursor: for row in cursor: print(f'{row[0]}. {row[1]}, {row[2]}')