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


جدول تناوبی تحلیل های مکانی در 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
آموزش برنامه نویسی پایتون بخش بیست و هشتم
برگشت چندین مقدار توسط توابع در پایتون
دستور return در پایتون می تواند چندین مقدار را برگشت دهد. پایتون امکان برگشت چندین مقدار در توابع را فراهم می آورد. در کدهای زیر تابعی را مشاهده می کنید که دو عدد را گرفته و به صورت نزولی یعنی از کم به زیاد آنها را برگشت یا return می نماید.
1 def sort(number1, number2):
2 if number1 < number2:
3 return number1, number2
4 else:
5 return number 2, number 1
6
7 n1, n2 = sort (3,2)
8 print (“n1 is”, n1)
9 print (“n2 is”, n2)
تابع sort دو مقدار را برگشت می دهد. زمانی که این تابع فراخوانی می شود، می توانید از مقادیر برگشتی این تابع در یک انتساب همزمان استفاده کنید.
انتزاع توابع و ارتقای مرحله ای

انتزاع توابع (Function Abstraction) از طریق جداسازی بخش استفاده از توابع با بخش به کار بستن یا تعریف توابع حاصل می شود. یک نکته کلیدی در توسعه نرم افزارها به کار بردن مفهوم انتزاع می باشد. سطوح مختلفی از انتزاع در برنامه نویسی وجود دارد. یک برنامه کلاینت که به طور ساده به آن کلاینت گفته می شود، می تواند از یک تابع بدون آنکه بداند آن تابع چطور ایجاد شده است، استفاده کند. جزئیات مربوط به تعریف و ایجاد آنها به صورت توابع کپسوله سازی شده و از نظر کلاینتی که تابع را مورد استفاده قرار می دهد مخفی می شوند. از این مفهوم به نام مخفی کردن اطلاعات و یا کپسوله سازی یاد می گردد. در صورتی که تصمیم بگیرید که نحوه به کارگیری را تغییر دهید، برنامه کلاینت تحت تأثیر قرار نمی گیرد. البته در صورتی که header تابع را تغییر ندهید. نحوه تعریف تابع از کلاینت مخفی شده به صورتی که به آن جعبه سیاه گفته می شود به طوری که در شکل فوق نشان داده شده است. شما همواره در بسیاری از موارد از بسیاری از توابع درون ساخت پایتون استفاده می کنید در صورتی که لزوماٌ اطلاع چندانی از جعبه های سیاه درون آنها ندارید. از این توابع در بسیاری از برنامه های کلاینت به کرار استفاده می کنید. و البته می دانید که چطور برنامه ای بنویسید که این توابع را در برنامه های کلاینت احضار نموده و مورد استفاده قرار دهد. اما به عنوان کاربر، نیازی نیست بدانید این توابع چطور تعریف شده اند و ساختار اجرایی درون آنها به چه شکلی است. مفهوم انتزاع توابع را می توان به پروسه های توسعه نرم افزارها اعمال نمود. هنگام نوشتن یک برنامه بزرگ، می توانید از استراتژی divide-and-conquer استفاده نمود. به این استراتژی ارتقای گام به گام نیز گفته می شود. در این حالت می توانید مسئله را به تعدادی مسئله های کوچک تر تجزیه کنید و سپس با حل مسائل کوچک تر و ساده تر به حل مسئله اصلی برسید. به همین ترتیب زیر مسئله ها نیز می توانند به مسئله های کوچکتری تجزیه شده و حل شوند. در این حالت هم به لحاظ منطقی امکان حل مسائل بالا می رود و هم به لحاظ مدیریت و سازماندهی مسائل مزیت هایی در پی خواهد داشت و همچنین باعث کاهش complexity یا پیچیدگی مسائل می شود. فرض کنید برنامه ای نوشتید که تقویم یک سال خاص را به کاربر نشان می دهد. برنامه ابتدا از کاربر می خواهد که یک سال و ماه را وارد کند، سپس برنامه کل تقویم مربوط به آن ماه را نشان می دهد. همان طور که متوجه شدید، در این برنامه چند زیر مسئله وجود دارد زیر مسئله اول در گرفتن اطلاعات از کاربر می باشد بعدی مربوط به آماده سازی و تدوین تقویم یک ماه و نهایتاً نمایش آن به کاربر می باشد.
مزایای ارتقای مرحله ای یا گام به گام برنامه
استراتژی ارتقای مرحله ای برنامه ها، یک مسئله بزرگ را به چندین زیر مسائل کوچکتر که قابلیت مدیریت بیشتری دارند، تجزیه می کند. هر زیر مسئله را می توان با استفاده از یک تابع پیاده سازی نمود. این رویکرد باعث می شود برنامه ساده تر شود، نوشتن برنامه ساده سازی شود، استفاده مجدد، خطایابی، تست و ویرایش و اصلاح و حفظ و توسعه نرم افزار نیز ساده سازی گردد.
ساده تر شدن برنامه
در مورد مثالی که در مورد برنامه چاپ تقویم به آن اشاره شد، این یک برنامه طویل می باشد. به جای آنکه یک توالی از کدها و دستورات طویل را در یک تابع بنویسیم، طبق استراتژی ارتقای مرحله ای، حل مسئله به چندین تابع کوچکتر تقسیم می شود. این حالت باعث ساده سازی برنامه می شود و کل برنامه را خوانا تر و قابلیت فهم و درک کدها را نیز بالا می برد.
توابع قابل استفاده مجدد
استراتژی ارتقای مرحله ای (Step-wise Refinement) باعث می شود که کدهای موجود در یک برنامه قابلیت استفاده مجدد پیدا کنند. این مسئله باعث کاهش تکرار کدها در برنامه ها می شود و به جز موارد و مزایای مورد اشاره، باعث افزایش سرعت توسعه برنامه ها نیز می گردد.
ساده سازی توسعه، خطایابی و تست برنامه ها
به طوری که هر زیر مسئله در یک تابع حل می شود، تابع می تواند توسعه پیدا کند، خطایابی و دیباگ شود و به صورت مجزا مورد تست و آزمون قرار بگیرد. این حالت باعث ایزوله سازی خطاها شده و از انتشار خطا یا Error Propagation در برنامه ها جلوگیری می کند. و منجر به توسعه، خطایابی و تست ساده تر برنامه های می شود. هنگامی که در حال نوشتن برنامه های بزرگ هستید، از رویکرد بالا به پائین استفاده کنید. کل برنامه را به یکباره ننویسید. استفاده از این رویکردها به نظر می رسد که زمان بیشتری برای توسعه کدها از ما بگیرد اما این در واقع باعث صرفه جویی زمانی شما شده و خطایابی برنامه ها را به شدت ساده تر می نماید.
تسهیل کار گروهی (Teamwork)
هنگامی که یک برنامه بزرگ به چندین زیر مسئل تجزیه می شود، هر زیر مسئله را می توان به عهده یک برنامه نویس داد تا بخش توسعه نرم افزار به صورت گروهی پیش برود. این مورد باعث ساده سازی برنامه نویسی در کارهای گروهی بین تیم برنامه نویسان می گردد.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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