امتیاز موضوع:
  • 2 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
گشت سریع درباره پایتون
نویسنده پیام
#1
گشت سریع درباره پایتون
پایتون یک زبان برنامه نویسی متن باز، همه منظوره می باشد که به عنوان یک زبان پردازه نویسی در پردازش اطلاعات جغرافیایی ArcGIS استفاده می شود. قابلیت پردازش اطلاعات جغرافیایی از طریق پایتون با استفاده از بسته سایتی ArcPy نرم افزار ArcGIS قابل دستیابی می باشد. ArcPy دسترسی به ابزار پردازش اطلاعات جغرافیایی و همچنین قابلیت های دیگر ، کلاس ها، ماژول ها را فراهم می کند که به شما امکان ایجاد سریع و آسان جریان های کاری ساده یا پیچیده می دهد. 

متقاضیان ArcGIS و اسکریپت های نوشته شده با استفاده از ArcPy از دسترسی و کار با ماژول های بیشمار پایتون ایجاد شده توسط متخصصان و برنامه نویسان GIS از ترتیب ها ی مختلف بسیار بهره می برند. قدرت دیگر استفاده از ArcPy در پایتون این است که پایتون یک زبان برنامه نویسی چندمنظوره است که یادگیری و استفاده ی آن آسان می باشد. این برنامه تفسیر و به طور پویا نوشته شد، که برای شما این قابلیت را فراهم می کند تا به سرعت در یک محیط فعل و انفعالی اسکریپت ها را نمونه سازی و تست کنند درحالیکه هنوز به اندازه  کافی برای پشتیبانی از نوشتن برنامه های بزرگ قدرتمند هستند.

به طور کل، ArcPy در ابزار، محیط ها، قابلیت ها، کلاس ها و ماژول ها دسته بندی می شود.    اجرای ابزار مثالی که در ادامه می آید چگونگی اجرای ابزار بافر را نشان می دهد. وقتی ابزار اجرا می شود، این پیغام به طور پیش فرض در سمت راست پنجره پایتون در بخش help ظاهر می شود.  
کد php:
[code]
>>> 
arcpy.Buffer_analysis("c:/data/Portland.gdb/streets""c:/data/Portland.gdb/steets_buffer""500 METERS")
[/
code
 در اینجا نمونه دیگری از اجرای ابزار وجود دارد. این نمونه از ابزار موجود در مدیریت داده و جعبه ابزار محاوره ای استفاده می کند. فیلدی به طبقه مشخصه ورودی خیابان افزوده می شود، این فیلد محاسبه می شود و سپس این طبقه ویژگی در پایگاه داده جغرافیایی سیستم ArcSDE بارگذاری می شود. 
کد php:
[code]
>>> 
import arcpy 
>>> arcpy.AddField_management("c:/data/Portland.gdb/streets""LENGTH_MILES""TEXT")
>>> 
arcpy.CalculateField_management("c:/data/Portland.gdb/streets""LENGTH_MILES""!shape.length@miles!""PYTHON_9.3")
>>> 
arcpy.FeatureClassToFeatureClass_conversion("c:/data/Portland.gdb/streets""Database Connections/MySDE.sde/PortlandDataset""streets")
[/
code
به دست آوردن نتایج از یک ابزار 
وقتی ابزار پردازش اطلاعات جغرافیایی اجرا می شود، نتایج ابزار به صورت شی result بازگردانده می شوند. معمولا، این شی مسیری به مجموعه داده خروجی تولید شده یا آپدیت شده توسط ابزار می باشد. در موارد دیگر، ممکن است شامل انواع مقداری دیگر، مانند عدد یا عملگر بولی باشد. اگر خروجی یک ابزار یک پارامتر چندمقداری باشد، مقادیر به صورت لیستی درون لیست دیگر بازگردانده می شوند.

مثال های کد زیر چگونگی به دست آوردن کد های بازگشتی و اینکه مقدار آنها چه می تواند باشد را نشان می دهند:

 مسیر طبقه ویژگی خروجی را بازگشت دهید. نتیجه می تواند به صورت ورودی برای تابع دیگر باشد.   
کد php:
[code]
>>> 
result arcpy.Buffer_analysis("rivers""riverBuf""50 METERS")
>>> print 
result
C
:\Portland\Portland_OR.gdb\riverBuf
>>> arcpy.Clip_analysis("streets"result"streets_50m_of_rivers")
[/
code
 تعداد ویژگی ها را بازگشت دهید. 
کد php:
[code]
>>> 
result arcpy.GetCount_management("streets_50m_of_rivers")
>>> print 
result.getOutput(0)
54
[/code
لیستی از شاخص های شبکه ای فضایی پیش فرض را برای طبقه ویژگی بازگشت دهید. 
کد php:
[code]
>>> 
result arcpy.CalculateDefaultGridIndex_management("streets_50m_of_rivers")
>>> for 
i in range(0result.outputCount):
...     print 
result.getOutput(i)
...
560
200
0
[/code
 استفاده از تنظیمات محیطی

تنظیمات محیطی پردازش اطلاعات جغرافیایی می تواند به عنوان پارامترهای دیگری در نظر گرفته شوند که بر نتایج ابزار تاثیر می گذارند. آنها با پارامترهای ابزاری نرمال تفاوت دارند از این جهت آنها به طور جداگانه از ابزار تنظیم و تحقیق می شوند و وقتی اجرا می شوند با ابزار استفاده می شوند. تنظیمات محیطی، از قبیل حوزه مورد توجه، سیستم مختصاتی مجموعه داده خروجی، و اندازه خانه یک مجموعه داده شبکه ای ، می تواند توسط ابزار مشخص و پذیرفته شود. 

تنظیمات محیطی از کلاس env به صورت ویژگی ها قابل دسترسی می باشند. این ویژگی ها برای بازیابی مقادیر فعلی محیط و تنظیم آنها استفاده می شوند. در زیر نمونه هایی از چگونگی استفاده از مقادیر محیطی آورده شده است:

محیط فضای کاری را تنظیم کنید.
کد php:
[code]
>>> 
arcpy.env.workspace "c:/data/Portland.gdb"
>>> arcpy.Buffer_analysis("streets""streetBuf""500 METERS")
[/
code
شاخص شبکه ای فضایی را برای بازگرداند مقدار از یک ابزار تنظیم کنید.
کد php:
[code]
>>> 
arcpy.env.spatialGrid1 arcpy.CalculateDefaultSpatialGridIndex_management("streets").getOutput(0)
[/
code
اندازه خانه شبکه ای فعلی را بگیرید و مطمئن شوید که اندازه ی ثابتی برای خروجی استاندارد می باشد.
درباره استفاده از تنظیمات محیطی در پایتون بیشتر بدانید


استفاده از توابع

یک تابع مقداری تعریف شده از قابلیتی است که یک وظیفه خاصی را انجام می دهد و می تواند در برنامه بزرگتر تلفیق شود. علاوه بر ابزار، ArcOy تعدادی از توابع را برای پشتیبانی بهتر جریان های کاری پردازش جغرافیایی مشخص می کند. توابع برای لیست کردن مجموعه داده های معین ، ویژگی های مجموعه داده ، بررسی وجود داده، معتبر سازی نام جدول قبل از افزودن آن به پایگاه داده جغرافیایی، یا انجام بسیاری از وظیفه های پردازه نویسی دیگر استفاده می شوند. 

کد نمونه زیر گرفتن ویژگی از داده و بررسی گسترش را نشان می دهد.
کد php:
[code]
[
color=#0000ff]import[/color] arcpy

[color=#008000]# prints True[/color]
[color=#0000ff]print[/color] arcpy.Exists([color=#a31515]"c:/data/Portland.gdb/streets"[/color]) 

[color=#008000]# prints NAD_1983_StatePlane_Oregon_North_FIPS_3601_Feet[/color]
sr arcpy.Describe([color=#a31515]"c:/data/Portland.gdb/streets"[/color]).spatialReference
[color=#0000ff]print[/color] sr.name 

[color=#008000]# prints Available[/color]
[color=#0000ff]print[/color] arcpy.CheckExtension([color=#a31515]"spatial"[/color]) 

arcpy.CheckOutExtension([color=#a31515]"spatial"[/color])
[/code

استفاده از کلاس ها 

کلاس های ArcPy مانند کلاس های SpatialReference و Extent ، اغلب به عنوان میانبرهایی برای کامل کردن پارامترهای ابزار پردازش اطلاعات جغرافیایی استفاده می شوند که در غیر اینصورت رشته معادل پیچیده تری می داشت. یک کلاس شبیه به طرح معماری می باشد. طرح اولیه چارچوبی را برای چگونگب ایجاد چیزی فراهم می کند. کلاس ها برای ایجاد اشیا استفاده می شوند؛ این قضیه اغلب به صورت نمونه ارجاع داده می شود.
کد php:
[code]
[
color=#0000ff]import[/color] arcpy

spatial_ref arcpy.SpatialReference([color=#a31515]"Hawaii Albers Equal Area C[/color]
[/code


کار با ماژول ها 

ArcPy شامل ماژول هایی است که نواحی دیگر ArcPy را پوشش می دهند. ArcPy توسط مجموعه از ماژول ها شامل ماژول دسترسی داده (arcpy.da)، ماژول نگاشت (arcpy.mapping)، ماژول بسط تحلیلگر فضایی (ArcGIS arcpy.sa) و ماژول بسط تحلیلگر شبکه (ArcPy arcpy.na) پشتیبانی می شود.
برای مثال، ابزار ماژول arcpy.sa از ابزار موجود در جعبه ابزار تحلیلگر فضایی استفاده می کنند اما برای پشتیبانی از جبد نقشه ای پیکربندی می شوند. بنابراین، اجرای arc.sa.slope مانند اجرای ابزار slope از جعبه ابزار تحلیلگر فضایی می باشد.

لینک منبع:
http://resources.arcgis.com/en/help/main...023000000/

 

 

 
پاسخ




کاربرانِ درحال بازدید از این موضوع: 1 مهمان