آموزش برنامه نویسی پایتون بخش سی ام


جدول تناوبی تحلیل های مکانی در GIS

معرفی هفت منبع داده اقلیمی رایگان جهانی

چرخش قطبی در مقابل چرخش خورشید آهنگ

آنالیز تصویر شئی گرا (OBIA)

تعامل انرژی در سنجش از دور : انعکاس، جذب و گسیل انرژی

معرفی 6 منبع رایگان داده های لیداری

آشنایی با SAR با استفاده از مثال

برنامه لندست : 50 سال آرشیو از تصاویر سطح زمین

دانلود رایگان نرم افزار ArcGIS Pro 2.8

ابر نقطه ای چیست ؟

انواع نقشه ها در سیستم اطلاعات جغرافیایی: 25 روش مختلف و جذاب برای نمایش داده های مکانی در GIS

تصحیحات اتمسفری در سنجش از دور چیست ؟

سیستم های تصویر نقشه چیست ؟ و چرا بعضا برای ما گمراه کننده هستند ؟

ژئودزی: ریاضیات مکان

گیرنده های GPS چگونه کار می کنند ؟ سه گانه سازی در مقابل مثلث بندی

مأموریت توپوگرافی رادار شاتل (SRTM)

چرا پنجره اتمسفری در علوم زمین دارای اهمیت است ؟

تصاویر ماهواره ای DigitalGlobe: وردویو(Worldview)، ژئوآی(GeoEye) و آیکونوس (IKONOS)

راهنمای طبقه بندی نزدیکترین همسایه در e-Cognition

نقشه های کروپلت – مقدمه ای بر طبقه بندی داده

تصاویر چند طیفی (Multi-spectral) در مقایسه با تصاویر ابر طیفی (Hyper-spectral)

فتوگرافی هوایی (Aerial Photography) در مقابل ارتوفوتوگرافی (Orthophotography)

راهنمای جامع لیدار (Light Detection and Ranging – LiDAR)

سنجش از دور چیست ؟

منابع داده GIS رایگان در سطح جهانی : داده های رستری و برداری

مقدمه ای بر سرویس های نقشه کشی تحت وب (WMS)

علم داده مکانی چیست ؟

تحلیل عوارض سه بعدی

ژئوانالیتیکس: آنالیز داده های مکانی حجیم

فرمت های داده در سیستم اطلاعات جغرافیایی بخش سوم

فرمت های داده در سیستم اطلاعات جغرافیایی بخش دوم

فرمت های GIS و پسوندهای داده مکانی بخش اول

آموزش برنامه نویسی پایتون بخش سی ام

انتشار نخستین تصاویر لندست 9 توسط سازمان هوا و فضای آمریکا (NASA)

آموزش برنامه نویسی پایتون بخش بیست و نهم

آموزش برنامه نویسی پایتون بخش بیست و هشتم

آموزش برنامه نویسی پایتون بخش بیست و هفتم

آموزش برنامه نویسی پایتون بخش بیست و ششم

آموزش برنامه نویسی پایتون بخش بیست و پنجم

معرفی سامانه WEB GIS
آموزش برنامه نویسی پایتون بخش سی ام
پارامتر self
به طوری که در آموزش های قبلی مشاهده شد، اولین پارامتری که برای هر متد تعریف می شود، پارامتر self است. این پارامتر، برای به کارگیری متد مورد استفاده قرار می گیرد اما زمانی که متد را فراخوانی می نمائیم مورد استفاده قرار نمیگیرد و نیازی به ورود آن نیست. در کل این پارامتر برای چه تعریف می شود و چه کاربردی دارد؟ چرا پایتون به آن نیاز دارد؟
self پارامتری است که به خود شیء ارجاع می دهد. با استفاده از پارامتر self امکان دسترسی به اعضای شیء در تعریف کلاس وجود خواهد داشت. برای مثال، شما می توانید از طریق سینتکس self.x به متغیر نمونه سازی شده x دسترسی داشته باشید و از طریق سینتکس self.m1() می توانید برای احضار متد m1 برای شیء self در یک کلاس استفاده کنید. این موضوع در شکل بعدی نشان داده شده است.

حیطه عملکرد متغیر نمونه کل فضای کلاس هنگامی است که آن کلاس در حال تعریف است. در شکل قبلی self.x یک متغیر نمونه می باشد که در متد __init__ ایجاد شده است. این متغیر در متد m2 قابل دسترسی است. متغیر نمونه self.y در متد m1 برابر با 2 تعیین می گردد و در متد m2 معادل 3 تعریف می شود. توجه داشته باشید که شما همچنین می توانید متغیرهای محلی در متدها ایجاد کنید. حیطه عملکرد متغیرهای محلی درون همان متدها است. متغیر محلی z در متد m1 ایجاد شده و حیطه عملکرد آن از زمان ایجاد آن تا انتهای متد m1 می باشد. و در خارج از این متد قابل دسترس نیست.
مثال: استفاده از کلاس ها
بخش هایی که در ادامه خواهید دید، نمایشی از مفاهیم مربوط به کلاس و اشیاء می باشد. شما پیشتر در مورد چگونگی تعریف کلاس ها با استفاده از متد سازنده، فیلدهای داده و متدها آشنایی پیدا کردید و اینکه چطور با استفاده از یک سازنده، اشیاء را ایجاد کنید. در این بخش یک برنامه آزمایشی خواهیم داشت که سه شیء دایره با شعاع 1، 25 و 125 ایجاد نموده و سپس شعاع و مساحت هر دایره را نمایش دهد. این برنامه سپس می تواند شعاع شیء دوم را به 100 تغییر داده و شعاع و مساحت جدید را نمایش دهد. در ادامه این برنامه را ملاحظه می کنید:
from Circle import Circle
def main():
# Create a circle with radius
circle1 = Circle()
print(“The area of the circle of radius”,7 ,”is”,circle1.getArea())
# Create a circle with radius 25
circle2 = Circle(25)
print(“The area of the circle of radius”,12 ,”is”,circle2.getArea())
# Create a circle with radius 125
circle3 = Circle(125)
print(“The area of the circle of radius”, 17,”is”,circle3.getArea())
# Modify circle radius
circle2.radius = 100 # or circle2.setRadius(100)
print(“The area of the circle of radius”, 22 ,”is”,circle2.getArea())
main() # Call the main function
The area of the circle of radius 1.0 is 3.141592653589793
The area of the circle of radius 25.0 is 1963.4954084936207
The area of the circle of radius 125.0 is 49087.385212340516
The area of the circle of radius 100.0 is 31415.926535897932
این برنامه از کلاس دایره یا Circle برای ایجاد شیء Circle استفاده می کند. این چنین برنامه هایی که از کلاس استفاده می کند نیز به نام کلاینت کلاس نامیده می شوند. تعریف کلاس Circle در زیر نشان داده شده است. برنامه فوق شیء Circle را با شعاع پیش فرض 1 تعریف می نماید و دو شیء Circle دیگر با شعاع معین ایجاد می نماید و سپس با استفاده از شعاع، متد getArea را بر روی اشیاء احضار نموده و مساحت را محاسبه می کند و این برنامه شعاع جدیدی بر روی circle2 ایجاد می کند. این کار با استفاده از دستور circle2.setRadius(100) انجام می پذیرد.
1 import math
2
3 class Circle:
4 # Construct a circle object
5 def _ _init_ _(self, radius = 1):
6 self.radius = radius
7
8 def getPerimeter(self):
9 return 2 * self.radius * math.pi
10
11 def getArea(self):
12 return self.radius * self.radius * math.pi
13
14 def setRadius(self, radius):
15 self.radius = radius
نکته
متغیری که برای نگهداری یک شیء ظاهر می شود، در اصل شامل ارجاعی به آن شیء می باشد. در اصل یک متغیر و شیء با یکدیگر متفاوت هستند، اما در اکثر مواقع تمایز بین این دو را می توان در نظر نگرفت و آنها را یکی محسوب کرد. در نتیجه به منظور ساده سازی، صحیح خواهد بود که بگوئیم circle1، یک شیء است تا آنکه بگوئیم circle1 متغیری است که شامل ارجاع به شیء Circle می باشد.
دیاگرام کلاس UML
دیاگرام کلاس UML از نوتیشن های گرافیکی برای تعریف کلاس ها استفاده می کند. نمایشی از نمونه های پیش ساخته کلاس ها و اشیاء را می توان با استفاده از UML استاندارد سازی نمود. این نوتیشن که به نام دیاگرام کلاس UML نامیده می شود در شکل بعدی نشان داده شده است و یک نمایش غیر وابسته به زبان برنامه نویسی است به طوری که در سایر زبان های برنامه نویسی نوتیشن و مدل سازی های مشابهی استفاده می شوند. در دیاگرام کلاس UML فیلدهای داده به صورت زیر نشان داده می شوند:
dataFieldName: dataFieldType
سازنده ها به صورت زیر نشان داده می شوند:
ClassName(parameterName: parameterType)
و متدها به صورت زیر نمایش داده می شوند:
methodName(parameterName: parameterType): returnType

تعریف متدها در کلاس ها همواره دارای پارامتر self می باشد اما در دیاگرام UML نیازی به درج آن نیست، زیرا کلاینت نیازی به دانستن این پارامتر ندارد و از این پارامتر برای احضار متدها استفاده نمی شود. همچنین متد _-initi__ در دیاگرام UML نیازی به لیست شدن ندارد زیرا این متد توسط سازنده احضار می گردد و پارامترهای آن همانند پارامترهای سازنده می باشد. دیاگرام UML به صورت قراردادی برای کلاینت ارائه می شود در نتیجه مشخص است که از کلاس چطور استفاده می شود. این دیاگرام برای کلاینت توضیح می دهد که چطور اشیاء را ایجاد نموده و متدهای آن بر روی اشیاء را فراخوانی کند. به عنوان مثال: دستگاه تلویزیون را در نظر بگیرید، هر تلوزیونی یک شیء با حالات مختلف می باشد که این حالات می تواند شامل کانال، حجم صدا، روشن یا خاموش بودن و .. باشد. در اصل ویژگی هایی است که توسط فیلدهای داده نمایش داده می شوند و همچنین شامل رفتارهایی همچون تغییر کانال، تنظیم صدا، خاموش یا روشن کردن و … نیز می گردد و در اصل عملکردهایی است که هر شیء به نام تلویزیون دارا است. شما می توانید از مفهوم کلاس برای تعریف یک دستگاه تلویزیون استفاده کنید. دیاگرام UML برای شیء تلویزیون در شکل بعدی ترسیم شده است.

در بخش زیر، کد پایتون برای تعریف کلاس تلویزیون نشان داده شده است.

متد سازنده متغیرهای نمونه به نام channel، volumeLevel و on را برای فیلد داده شیء TV ایجاد می کند. توجه داشته باشید که متد سازنده هیچگونه آرگومانی به جز self ندارد. کانال و حجم صدا در صورتی که TV خاموش باشد، تغییر نمی کنند. پیش از آنکه هر کدام از آنها بررسی شوند، مقدار کنونی آنها بررسی می شود تا مطمئن شود که آنها در رنج درستی قرار دارند.
1 from TV import TV
2
3 def main():
4 tv1 = TV()
5 tv1.turnOn()
6 tv1.setChannel(30)
7 tv1.setVolume(3)
8
9 tv2 = Tv()
10 tv2.turnOn()
11 tv2.channelUp()
12 tv2.channelUp()
13 tv2.volumeUp()
14
15 print(“tv1’s channel is”, , tv1.getChannel()
16 “and volume level is”,tv1.getVolumeLevel() )
17 print(“tv2’s channel is”, tv2.getChannel(),
18 “and volume level is”, tv2.getVolumeLevel())
19
20 main() # Call the main function
این برنامه دو شیء tv1 و tv2 را ایجاد می کند و متدها را برای هر شیء فراحوانی می کند تا عملکردهای مربوط به تنظیم کانال و تغییر سطح صدا را انجام دهد. tv1 با احضار tv1.turnOn() روشن می شود و کانال های آن با احضار tv1.setChannel(30) بر روی کانال 30 تنظیم می شود و سطح صدا بر روی درجه 3 تنظیم می شود. tv2 در خط 10 روشن می شود و کانال های آن از طریق tv2channelUp() یک واحد افزایش می یابد و یک درجه دیگر در خط 12 افزایش می یابد. در حالی که کانال اولیه بر روی 1 تنظیم شده است کانال tv2 اکنون 3 می باشد. حجم صدای tv2 از طریق احضار Tv2.volumeUp() در خط 13 یک درجه افزایش می یابد. در حالی که حجم صدای اولیه برابر با 1 تعیین شده بود، در حال حاضر حجم صدا برابر با 2 می باشد. برنامه نهایتاً وضعیت اشیاء را در خطوط 15 تا 18 نمایش می دهد. فیلدهای داده با استفاده از متدهای getChannel() و getVolumeLevel() خوانده می شوند.

آموزش برنامه نویسی پایتون بخش چهاردهم

دانلود نقشه های توپوگرافی اسکن شده با مقیاس 1/50000 برگه تایباد به شماره NI-41-5

روش نصب نرم افزار ArcGIS Pro 3.0.2

برنامه نویسی پایتون بخش هشتم (انتساب چندگانه، ثابت ها، نوع-داده های عددی و اپراتورها)

دانلود نقشه های توپوگرافی اسکن شده با مقیاس 1/50000 برگه چابهار به شماره NG-41-9

روش نصب نرم افزار Envi 5.6

آموزش برنامه نویسی پایتون بخش هجدهم

آموزش برنامه نویسی پایتون بخش نوزدهم

نقشه های زمین شناسی اسکن شده ایران در مقیاس 1:250000

دانلود رایگان تصاویر ماهواره ای ژئورفرنس شده با رزولوشن بالا

فیلم آموزشی زمین مرجع یا ژئورفرنس لایه ها و داده های مکانی در نرم افزار Global Mapper

آموزش برنامه نویسی پایتون بخش هفدهم

آموزش برنامه نویسی پایتون بخش پنجم

نقشه های پوششی زمین شناسی ایران در مقیاس 1:100000 بخش هشتم

دانلود نقشه های توپوگرافی اسکن شده با مقیاس 1/50000 برگه نره نو به شماره NH-41-14

دانلود نقشه های توپوگرافی اسکن شده با مقیاس 1/50000 برگه مشهد به شماره NJ-40-16

آموزش برنامه نویسی پایتون بخش بیست و سوم

فیلم آموزشی زمین مرجع یا ژئورفرنس لایه ها و داده های مکانی در نرم افزار Surfer

روش نصب نرم افزار Arc GIS Pro 2.8

آموزش برنامه نویسی پایتون بخش اول

آموزش برنامه نویسی پایتون بخش بیست و چهارم

تبدیل مختصات در نرم افزار Global Mapper

برنامه نویسی پایتون بخش ششم (Identifiers)

نقشه های توپوگرافی اسکن شده با مقیاس 1/50000 برگه زابل به شماره NH-41-1

آموزش برنامه نویسی پایتون بخش سیزدهم (توابع مرسوم پایتون)

نرم افزار Z-scale Estimator

دانلود نقشه های توپوگرافی اسکن شده با مقیاس 1/50000 برگه سرآوان به شماره NG-41-2

آموزش برنامه نویسی پایتون بخش دهم (اپراتورهای انتساب گمارشی)

دانلود و روش نصب نرم افزار Surfer 24

نرم افزار Coordinate Format Changer V.1 برای تبدیل فرمت مختصات

سیستم مختصات، واژه شناسی و مفاهیم در سیستم اطلاعات جغرافیایی

آموزش برنامه نویسی پایتون بخش پانزدهم

نقشه های توپوگرافی اسکن شده با مقیاس 1/50000 برگه جازموریان به شماره NG-40-4

دانلود نقشه راههای ایران استایل 4

نقشه های پوششی زمین شناسی ایران در مقیاس 1:100000 بخش هفتم

ابزارهای برنامه نویسی (Programming Tools)

دانلود نقشه های توپوگرافی اسکن شده با مقیاس 1/50000 برگه قشم به شماره NG-40-6

آموزش برنامه نویسی پایتون بخش دوم (شروع به کار با پایتون)

مقدمه ای بر برنامه نویسی کامپیوتر بخش سخت افزار

دیدگاهتان را بنویسید