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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

معرفی سامانه WEB GIS

نقشه متوسط دمای سطح زمین ایران (LST)

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

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

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

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

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

برنامه نویسی پایتون بخش هفتم (متغیرها، دستور انتساب و عبارات)

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

معرفی توانایی ها و ویژگی های ماهواره لندست 9

ماهواره لندست 9

نرم افزار Arc GIS Desktop در مقابل Arc GIS Pro

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

آموزش برنامه نویسی پایتون بخش سوم (محاسبات ریاضی، استایل و خطاها در برنامه نویسی)

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

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

سیکل توسعه نرم افزار

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

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

مقدمه ای بر برنامه نویسی کامپیوتر بخش سخت افزار
آموزش برنامه نویسی پایتون بخش سی ام
پارامتر 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:100000 بخش هفتم

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

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

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

آموزش صفر تا صد ترسیم نقشه های توپوگرافی حرفه ای در نرم افزار Arc GIS

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

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

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

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

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

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

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

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

نرم افزار Coordinate to Map V.1 برای ترسیم عوارض برداری نقطه ای، خطی و پلیگونی بر اساس اطلاعات نقطه ای برداشت شده در عملیات نقشه برداری

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

روش دانلود لایه های برداری لایه ها و عوارض شهری OSM

نرم افزار Terrain Morphometer V.1 برای اجرای آنالیز مورفومتری از مدل رقومی ارتفاعی

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

آشنایی و معرفی اولیه Google Earth Engine

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

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

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

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

آموزش ویدئویی تحلیل های هیدرولوژی در نرم افزار ArcGIS Pro

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

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

دانلود رایگان محاسبه سرعت دانلود و آپلود اینترنت

کارگاه آموزشی تحلیل داده های رستری با استفاده از زبان برنامه نویسی پایتون

روش برش حواشی نقشه های اسکن شده در نرم افزار Global Mapper

نرم افزار Slope Calculator V.1 برای استخراج نقشه شیب از مدل رقومی ارتفاعی با استفاده از 5 الگوریتم مختلف

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

روش های ترانسفورم (Transformation) مختصاتی در نرم افزار ArcGIS Pro

دانلود نرم افزار Arc GIS Pro 2.5 + روش نصب گام به گام

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

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

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

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

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

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

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