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


جدول تناوبی تحلیل های مکانی در 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


آموزش برنامه نویسی پایتون بخش بیست و ششم
ماژولارسازی کدها
ماژولارسازی کدها، باعث ساده سازی حفظ و نگهداری و رفع خطای برنامه ها و کدهای نوشته شده می گردد و امکان استفاده مجدد از این کدها را فراهم می آورد. استفاده از توابع می توانند باعث کاهش تکرار کدها شده و امکان استفاده مجدد از کدهای نوشته شده را فراهم کند. توابع همچنین می توانند در ماژولار سازی کدها استفاده شده و می توانند از این طریق کیفیت برنامه ها را ارتقا بخشند. در زبان برنامه نویسی پایتون، می توانید تعریف توابع را در فایلی مجزا قرار دهید که به نام ماژول نامیده می شود و پسوند این فایل را .py قرار دهید. این ماژول ها می توانند بعداً به برنامه ها import شده و مورد استفاده مجدد قرار بگیرند. فایل ماژول بایستی در همان دایرکتوری قرار بگیرد که فایل برنامه های دیگرتان را در آنجا قرار داده اید. یک ماژول می تواند شامل بیش از یک تابع باشد. هر تابعی که در یک ماژول قرار دارد بایستی نام متفاوتی داشته باشد. توجه داشته باشید که turtle، Random و یا math همگی ماژول هایی هستند که در پایتون تعریف شده اند و به صورت یک کتابخانه در دسترس قرار گرفته اند. در نتیجه ماژول هایی که در این کتابخانه ها وجود دارد را می توان به برنامه های خود Import نموده و از امکانات آنها استفاده کنید. در برنامه زیر، از کاربر درخواست می شود که 2 عدد صحیح وارد کند و برنامه بزرگترین مقسوم علیه مشترک آنها را محاسبه می کند. شما می توانید برنامه را به صورت یک تابع بازنویسی نموده و آن را در یک ماژول قرار داده و با یک نام مناسب و با پسوند py. ذخیره سازی کنید.
1 # Prompt the user to enter two integers
2 n1 = eval(input(“Enter first integer: “))
3 n2 = eval(input(“Enter second integer: “))
4
5 gcd = 1
6 k = 2
7 while k <= n1 and k <= n2:
8 if n1 % k == 0 and n2 % k == 0:
9 gcd = k
10 k += 1
11
12 print(“The greatest common divisor for”,
13 n1, “and”, n2, “is”, gcd)
1 # Return the gcd of two integers
2 def gcd(n1,n2):
3 gcd = 1 # Initial gcd is 1
4 k = 2 # Possible gcd
5
6 while k <= n1 and k <= n2:
7 if n1 % k == 0 and n2 % k == 0:
8 gcd = k # Update gcd
9 k += 1
10
11 Return gcd # Return gcd
اکنون برنامه مجزای دیگری می نویسیم تا از تابع gcd استفاده کنیم.
1 # Import the gcd function
2
3 # Prompt the user to enter two integers
4 n1 = eval(input(“Enter the first integer: “))
5 n2 = eval(input(“Enter the second integer: “))
6 gcd_value = gcd(n1,n2)
7 print(“The greatest common divisor for”, n1,
8 “and”, n2, “is”,gcd_value )
خط 1، تابع gcd را از ماژول مربوطه به برنامه وارد یا import می کند و شما را قادر خواهد ساخت تا تابع gcd را در خط 6 برنامه فراخوانی نموده و مورد استفاده قرار دهید. همچنین می توانید آن را به صورت زیر Import کنید:
import GCDFunction.gcd
با کپسوله سازی کد برای دربرگرفتن gcd در تابع، این برنامه دارای چندین مزیت خواهد بود:
1- به این ترتیب برنامه ای که محاسبه gcd را بر عهده دارد از بقیه برنامه مجزا شده و در نتیجه معنای برنامه شفاف تر و ساده تر می گردد و خوانایی برنامه نیز افزایش پیدا می کند.
2- هر گونه خطا در محاسبه gcd، محدود به تابع gcd خواهد شد که در نتیجه حیطه خطایابی و دیباگ کردن برنامه از این طریق محدود و باریک می گردد.
3- تابع gcd اکنون می تواند توسط سایر برنامه ها نیز مورد استفاده قرار گیرد.
چه اتفاقی خواهد افتاد اگر دو تابع همنام را در یک ماژول تعریف کنید؟ هیچگونه خطای نحوی یا syntax error در این حالت ایجاد نخواهد شد اما تعریف تابع دومی بر روی اولی Overwrite شده و در نتیجه تابع دوم مورد استفاده برنامه قرار خواهد گرفت. برنامه ای که در ادامه آورده شده است، مفهوم ماژولارسازی کدها را مورد استفاده قرار می دهد تا برنامه مربوط به اعداد اول را ماژولارسازی نماید. این برنامه دو تابع جدید به نام isPrime و printPrimeNumbers را تعریف می کند. تابع isPrime تعیین می کند آیا یک، عدد اول می باشد یا خیر و تابع printPrimeNumbers اعداد اول را چاپ می کند.
1 NUMBER_OF_PRIMES = 50 # Number of primes to display
2 NUMBER_OF_PRIMES_PER_LINE = 10 # Display 10 per line
3 # Count the number of prime numbers
4 number = 2 # A number to be tested for primeness
5
6 print(“The first 50 prime numbers are”)
7
8 # Repeatedly find prime numbers
9 while count < NUMBER_OF_PRIMES:
10 # Assume the number is prime
11 isPrime = True # Is the current number prime?
12
13 # Test if number is prime
14 divisor = 2
15 while divisor <= number / 2:
16 if number % divisor == 0:
17 # If true, the number is not prime
18 isPrime = False # Set isPrime to false
19 break# Exit the for loop
20 divisor += 1
21
22 # Display the prime number and increase the count
23 if isPrime:
24 count += 1 # Increase the count
25
26 print(format(number, “5d”), end = ”)
27 if count % NUMBER_OF_PRIMES_PER_LINE == 0:
28 # Display the number and advance to the new line
29 print() # Jump to the new line
30
31 # Check if the next number is prime
32 number += 1
1 # Check whether number is prime
2 def isPrime(number):
3 divisor = 2
4 while divisor <= number / 2:
5 if number % divisor == 0:
6 # If true, number is not prime
7 return False # number is not a prime
8 divisor += 1
9
10 return True # number is prime
11
12 def printPrimeNumbers(numberOfPrimes):
13 NUMBER_OF_PRIMES = 50 # Number of primes to display
14 NUMBER_OF_PRIMES_PER_LINE = 10 # Display 10 per line
15 count = 0 # Count the number of prime numbers
16 number = 2 # A number to be tested for primeness
17
18 # Repeatedly find prime numbers
19 while count < numberOfPrimes:
20 # Print the prime number and increase the count
21 if isPrime(number):
22 count += 1 # Increase the count
23
24 print(number, end = ” “)
25 if count % NUMBER_OF_PRIMES_PER_LINE == 0:
26 # Print the number and advance to the new line
27 print()
28
29 # Check if the next number is prime
30 number += 1
31
32 def main():
33 print(“The first 50 prime numbers are”)
34 printPrimeNumbers(50)
35 main()

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

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

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

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

نقشه های موقعیت سیاسی منطقه مطالعاتی بخش دوم

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

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

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

آموزش تحلیل های هیدرولوژی در نرم افزار Arc GIS Desktop

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

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

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

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

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

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

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

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

مدلسازی سایه-اندازی ساختمان ها در چشم اندازهای شهری در نرم افزار ArcGIS Pro

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

نقشه تقسیمات سیاسی ایران

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

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

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

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