آزمایشگاه GIS&GIT

مهندسی فناوری اطلاعات مکانی|مهندسی نقشه برداری|GIS|GEOMATICS|GIT
آزمایشگاه  GIS&GIT

فعالیت های این سایت در زمینه فناوری اطلاعات مکانی و مهندسی نقشه برداری می باشد.ا

جهت تماس از طریق ای دی زیر اقدام نمایید.
telegram:@fazel_shahcheragh
تلفن تماس جهت مشاوره:09124320328
برنامه نویسی و اسکریپت نویسی GIS
آموزش و رفع اشکال ARCPY
طراحی وتوسعه اپلیکیشن های موبایل
طراحی و توسعه برنامه های دسکتاپ جی ای اس

سید فاضل شاه چراغ
مدرس دانشگاه
طراح و مجری پروژه های GIS



























آزمایشگاه GIS&GIT

مهندسی فناوری اطلاعات مکانی|مهندسی نقشه برداری|GIS|GEOMATICS|GIT





مثال:
ایجاد بافر 200 متری بر روی عوارض لایه در مسیر c:/gisdata/shapefile1.shp و ذخیر آن در همان مسیر با نام  c:/gisdata/shapefile1_buff.shp

حل:
ابتدا وار د محیط ارک مپ شده و از مسیر زیر پنجره برنامه نویسی به زبان پایتون را باز کنید

Geoperocessing-->python

در پنجره سمت راست ابتدا کتابخه arcpy  را وارد کنید و کد زیر را وارد کنید



 arcpy.Buffer_analysis("c:/gisdata/shapefile1.shp", "c:/gisdata/shapefile1_buff.shp", "500 METERS")q

ادامه توضیح کدها...
۰ نظر موافقین ۰ مخالفین ۰ ۲۳ خرداد ۹۴ ، ۱۴:۲۵
ADMIN
در این پست لیست بسیار مفید و کاربردی از منابع آموزشی پایتون برای جی ای اس خدمت شما دوستان معرفی میگردد، منابعی که در ادامه معرفی می شوند از بهترین هایی هستند که طی سال های اخیر در سرچ های شخصی خودم با آنها برخورد کرده ام اگر شما منبعی را می شناسید که وجود ندارد لطفا معرفی کنید.


Presentations:

ArcGIS Documentation:

Online Books:

Online Courses:

Tutorials:

Official Documentation:

Paper Books:

Paper Books on Python in ArcGIS:

User Communities:

Blogs:

Sample Code:

Tools/Integrated Development Environments (IDEs) - Non-commercial:

Modules/Frameworks:


۰ نظر موافقین ۰ مخالفین ۰ ۲۳ خرداد ۹۴ ، ۱۱:۲۶
ADMIN


پایتون ( Python) یک زبان برنامه‌نویسی همه منظوره، سطح بالا، شیءگرا و مفسر است که توسط خودو فان روسوم (به هلندی: Guido van Rossum) در سال ۱۹۹۱ در کشور هلند طراحی شد.

فلسفهٔ ایجاد آن تاکید بر دو هدف اصلی خوانایی بالای برنامه‌های نوشته شده و کوتاهی و بازدهی نسبی بالای آن است.[۳] کلمات کلیدی و اصلی این زبان به صورت حداقلی تهیه شده‌اند و در مقابل کتابخانه‌هایی که در اختیار کاربر است بسیار وسیع هستند.

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

پایتون مدل‌های مختلف برنامه نویسی (از جمله شیء گرا و برنامه نویسی دستوری و تابع محور) را پشتیبانی می‌کند و برای مشخص کردن نوع متغییرها از یک سامانهٔ پویا استفاده می‌کند.

این زبان از زبان‌های برنامه نویسی مفسر بوده و به صورت کامل یک زبان شی‌گرا است که در ویژگی‌ها با زبانهای تفسیری پرل، روبی، اسکیم، اسمال‌تاک و تی‌سی‌ال مشابهت دارد و از مدیریت خودکار حافظه استفاده می‌کند.

پایتون پروژه‌ای آزاد و متن‌باز توسعه‌یافته‌است و توسط بنیاد نرم‌افزار پایتون مدیریت می‌گردد.



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


۰ نظر موافقین ۰ مخالفین ۰ ۲۳ خرداد ۹۴ ، ۱۱:۱۹
ADMIN

معماری سه لایه چیست؟

در معماری سه لایه تمام برنامه به چندین بخش تقسیم می شود. این بخش ها می توانند فیزیکی یا منطقی باشند. هر بخش کار خاصی را انجام می دهد مثلا نمایش اینترفیس کاربر یا دسترسی به داده ها. برنامه می تواند به هر تعداد لایه داشته باشد ولی به هر حال بیشتر برنامه ها سه لایه مجزا دارند که عبارتند از :

  • Presentation Layer
  • Business Logic Layer
  • Data Access Layer

همان طور که احتمالا حدس زده اید، لایه Presentation چیزی نیست به جز بخشی از نرم افزار که با کاربر برنامه شما ارتباط برقرار می کند ( اینترفیس برنامه شماست ) نمایش داده ها به کاربر نهایی و اجازه به آنان برای ارتباط داشتن با داده ها، اصلی ترین وظیفه این لایه است.

در بیشتر موارد داده هایی که توسط کاربر وارد می شوند نیاز به اعتبارسنجی یا پردازش اضافی دارند. این مسوولیت لایه Business Logic است.

در نهایت داده های برنامه شما نیاز به ذخیره و بازیابی از طریق یک انبار داده دارند ( مثلا سیستم مدیریت دیتابیس های رابطه ای یا RDBMS و یا XML , .. ) این وظیفه توسط لایه دسترسی به داده انجام می شود.

به طور خلاصه، فرآیند مورد نظر ما این گونه کار می کند:



۰ نظر موافقین ۰ مخالفین ۰ ۲۲ خرداد ۹۴ ، ۰۹:۱۲
ADMIN
با سلام
اسکریپت تغییر کنتراست نقشه بدون نیاز به برنامه نویسی سمت سرور


۰ نظر موافقین ۰ مخالفین ۰ ۲۱ خرداد ۹۴ ، ۱۰:۵۹
ADMIN

رصدخانه شهری

 رصد خانه های شهری

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

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


رصدخانه

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

برنامه‌ی نظارت شهری شامل دوجزء اصلی است:

 1

۰ نظر موافقین ۰ مخالفین ۰ ۲۳ ارديبهشت ۹۴ ، ۱۴:۵۷
ADMIN

 10 زبان برنامه نویسی که باید در سال 2014 آموخت!


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

در ادامه به 10 زبان برنامه نوسی که یادگیری آن ها در سال 2014 پیشرفت شما در زندگی را تضمین می کند اشاره می کنیم.

 1- جاوا

زبانی مبتنی بر کلاس و شی گرا که توسط Sun Microsystems در سال 1990 طراحی شده است. با این زبان بازی ها و نرم افزار های بزرگی طراحی و پیاده سازی شده اند که بخشی نیز در قالب وب و موبایل ارائه شده اند که از جمله معروف ترین آن ها می توان به سیستم عامل اندروید اشاره کرد. همچنین نرم افزارهای نوشته شده با جاوا چندگانه هستند به این صورت که هم در مک و هم در ویندوز قابل اجرا هستند.

2- C

یکی از قدیمی ترین زبان های برنامه نویسی که در دهه 70 معرفی شد و شروعی بود برای زبان های برنامه نویسی آینده مانند ++C و #C و جاوا و ... تا این زبان ها هم بتوانند از C گسترش یابند. به همین دلیل C را ابتدایی ترین زبان برای یادگیری می دانند زیرا به یادگیری زبان های بعدی کمک می کند.

3- ++C

 این زبان شی گرا عامل اصلی ساخت نرم افزار هایی چون فایرفاکس، Winamp و نرم افزارهای ادوبی است. نرم افزار های سیستمی،سرور های قوی، نرم افزار های کلاینت و بازی های ویدئویی با این زبان طراحی می شوند.

4- #C

 یکی دیگر از مشتقات زبان C که توسط مایکروسافت برای .Net طراحی شده است و نرم افزار های مایکروسافتی و مبتنی بر ویندوز پیاده سازی می کند.

 5- Objective C

 زبان مورد علاقه ی شرکت اپل که نرم افزار های خود را با این زبان پیاده سازی می کند. نرم افزار هایی برای سیستم عامل مک و اپلیکیشن هایی برای سیستم عامل iOS همگی با این زبان منتشر شده اند.

6- PHP

 فیس بوک و 200 میلیون سایت اینترنتی با استفاده از این زبان طراحی شده اند. زبانی رایگان و سمت سرور که به همراه کدهای HTML وب سایت های اینترنتی و اپلیکیشن های مبتنی بر وب را پیاده سازی کرده اند.

7- Python

 یک زبان سطح بالا و بسیار شیک و مجلسی! این زبان به علت کوتاه بودن در نوشتار و راحتی به آماتور ها پیشنهاد می شود. اپلیکیشن های مبتنی بر وب مانند اینستاگرام و Pintrest و وب سایت هایی مانند وب سایت ناسا از این زبان استفاده کرده اند.

8- Ruby

 مانند Python زبانی ساده برای آماتور ها و تازه کار هاست و می توان به کمک آن اپلیکیشن ها و وب سایت های خوبی پیاده سازی کرد. از جمله این وب سایت ها می توان به Groupon اشاره کرد.

9- Java Script

 جاوا اسکریپت که توسط Netscape طراحی شده است که توابع وبی انیمیشنی و نرم افزار های دسکتاپی و بازی ها با این زبان پیاده سازی می شوند. همچنین افزونه های کروم و افزونه های سافاری با این زبان درست می شوند.

10-SQL

در سال 1980 توسط سازمان ANSI و ISO طراحی شد و می توان گفت قوی ترین زبان مدیریت دیتاها در دیتابیس است و قویترین کوئری ها را می توان از آن گرفت.

۰ نظر موافقین ۰ مخالفین ۰ ۰۱ ارديبهشت ۹۴ ، ۰۲:۵۶
ADMIN

بعد از معرفی ویندوز 10 این سیتسم عامل جدید برخی از دوران آزمایشی خود را سپری کرد و اکنون مایکروسافت به توسعه دهندگان این اجازه را داده است تا به توسعه اپلیکیشن‌های ویندوز 10 بپردازند و از ابزار‌های موجود برای این کار استفاده کنند. این درحالیست که فعلا نسخه رسمی ویندوز 10 منتشر نشده و به احتمال زیاد تابستان امسال شاهد این سیستم عامل خواهیم بود.

windows-10

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

این اتفاق برای توسعه دهندگان بسیار خوش آیند است، زیراکه اغلب انتظار داشتند تا مایکروسافت این کیت توسعه دهندگان را در کنفرانس ماه آوریل خود منتشر کند اما اکنون این افراد می‌توانند نگاه دقیق‌تری به ویندوز 10 و روش‌های توسعه آن داشته باشند و اپلیکیشن‌های اندروید و iOS خود را برای ویندوز 10 نیز منتشر کنند. با وجود اینکه فعلا نامی برای اپلیکیشن‌های ویندوز معرفی نشده است اما مایکروسافت در اغلب موارد از آن با نام Windows Apps  یاد می‌کند.

مایکروسافت در ویندوز 10 توانست سر و صدای زیادی به پا کند و گویا این روند همچنان ادامه دارد. تنها راه استفاده از این اپلیکیشن‌های جدید نیز انتظار کشیدن تا تابستان امسال است؛ زمانی که مایکروسافت نسخه نهایی ویندوز 10 را منتشر کند.

۰ نظر موافقین ۰ مخالفین ۰ ۰۱ ارديبهشت ۹۴ ، ۰۰:۴۴
ADMIN

یکی از محصولات شرکت نام آشنای Esri که اخیرا در ژانویه 2015 از آن رونمایی شده است نرم افزار ARC GIS PRO می باشد در تعریفی که از مشخصات و توانایی های آن آمده است این محصول را برای ایجاد و کار با داده های مکانی در محیط دسکتاپ معرفی کرده است و در ادامه معرفی آن از جمع آوری ابزارهای مختلف برای ایجاد، تجزیه  و تحلیل، اجرا و به اشتراک گذاری داده های مکانی در محیط دو بعدی و سه بعدی اشاره کرده است.

در مجموع روند انجام کار با این نرم افزار به شرح ذیل می باشد:

Build Projects

Build projects


Visualize Your Data

Visualize data


Perform Analysis and Geoprocessing

Perform analysis


Manage Geographic Data


Manage data


Share Your Work

Share your work


Customize ArcGIS Pro

Customize


منبع:http://pro.arcgis.com/en/pro-app/

۰ نظر موافقین ۰ مخالفین ۰ ۳۰ فروردين ۹۴ ، ۱۵:۱۰
ADMIN

بسم الله الرحمن الرحیم

سلام...

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

متغیرها علاوه بر اینکه دارای نام، نوع و مقدار اولیه هستند، دارای طول عمر و سطح دسترسی نیز می‌باشند. با سه تای اولی که آشنایی دارید. اما توی این درس قصد دارم شما رو با طول عمر و سطح دسترسی متغیرها آشنا کنم. شما بعد از آشنایی با این موارد توانایی نوشتن برنامه های بهتری را خواهید داشت.

به محدوده زمانی ایجاد متغیر، تا زمان از بین رفتن آن متغیر، طول عمر متغیر می گویند. (حالا این یعنی چی؟!)

کامپیوترها دو نوع حافظه مهم دارند: عمدا دومی رو اول میگم. 2- حافظه جانبی(مثل هارد دیسک، فلش، دیسک نوری و...) 1- حافظه اصلی (RAM)، این حافظه برعکس حافظه های جانبی ، بصورتی هست که اطلاعات داخلش با قطع شدن برق کامپیوتر، از بین می رود. به اصطلاح حافظه های فرار هستند. متغیرها در داخل این حافظه قرار دارند.

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

متغیرهای در حالت های خاصی طول عمر کمتری دارند. اینجاست که باید مفهوم Scope رو توضیح بدم. به هر بلوکی از کُد که با علامت } شروع، و با علامت { خاتمه پیدا می کند اسکوپ می گوییم. تصویر زیر بخوبی این مطلب را روشن می کند.

در این شکل بلوک مربوط به حلقه for در کادر شماره 1 قرار دارد و بلوک مربوط به رویداد کلیک Button1 در کادر شماره 2 است. بلوک شماره 1 در داخل بلوک شماره 2 قرار گرفته.

  • قانون اول: تمام متغیرهای تعریف شده در هر بلوک، فقط در همان بلوک ، قابل دسترسی هستند. به متغیر نوع صحیح MyVariable که با فلش آبی رنگ مشخص شده، دقت کنید. این متغیر در بیرون بلوک شماره 1 غیرقابل دسترس بوده (فلش قرمز رنگ). بنابراین حتی اگر خودمان اسم این متغیر را تایپ کنیم، زیر آن خط چین قرمز کشیده خواهد شد، که نشانه خطا در برنامه نویسی است.
  • قانون دوم: بلوک های داخلی می توانند به متغیرهای بلوک های بیرونی دسترسی داشته باشند. به همین علت متغیر count در داخل بلوک شماره 1 قابل دسترسی بوده و کامپایلر از این کار اشکالی نمی گیرد.

ثابت چیست؟ برخلاف متغیرها، مقدار ذخیره شده در داخل ثابت ها غیرقابل تغییر می باشد. ثابت ها حتما باید در هنگام تعریف شدن ، مقداردهی اولیه شوند. برای تعریف ثابت از کلمه کلیدی const استفاده می کنیم. به مثال های زیر دقت کنید:

const float PI = 3.14f;
const int SQUARE_SIDES = 4;
const string COUNTRY = "Islamic Republic of Iran (IRI)";

مزیت های استفاده از ثابت ها:

  • کد نویسی سریع تر. مثلا اگر قرار باشه جمله Islamic Republic of Iran رو در 20 جای برنامه بنویسیم، در هر 20 جای برنامه به نوشتن COUNTRY اکتفا می کنیم.
  • تصحیح سریع کُد: کافیست همانجایی که ثابت را تعریف کرده ایم، مقدار آنرا تغییر دهیم. آن مقدار جدید در هر 20 جای برنامه جایگزین می شود.

تبدیل رشته عددی به عدد واقعی: یکی از مواردی که نیاز به تبدیل رشته عددی به عدد واقعی، وجود دارد، زمانی است که بخواهیم از طریق TextBox یک عدد را از کاربر دریافت کنیم. همانطور که میدانید، متنی را که کاربر در داخل TextBox تایپ می کند، در خاصیت Text مربوط به TextBox ذخیره می شود. اما این خاصیت فقط توانایی ذخیره کردن رشته ها را دارد. برای مثال اگر کاربر عدد 18343 را در داخل TextBox وارد کند، این عدد بصورت رشته "18343" ذخیره خواهد شد. روی رشته ها نمی توانیم عملیات ریاضی انجام دهیم. فقط با عملگر + می توان دو رشته را به چسباند. اینجاست که باید رشته ها رو به عدد تبدیل کنیم. کد زیر رشته عددی موجود در TextBox1 رو به عدد تبدیل کرده و در متغیر عددی num ذخیره می کنه:

int num = Convert.ToInt32(TextBox1.Text);

نکته: باید حتما در TextBox یک عدد وارد شده باشه. وگرنه برنامه با خطا مواجه خواهد شد. البته راهی هم هست که از خطای ناگهانی برنامه جلوگیری کنیم. اما حالا زوده که بگم :)


اما قسمت عملی درس:

یک پروژه جدید بسازید و روی فرم آن کنترل های زیر را قرار دهید:

  • یک عدد TextBox
  • یک عدد دکمه
  • یک عدد ListBox
  • یک عدد ProgressBar
  • یک عدد Timer (از زیر مجموعه Components پیداش می کنید) - خصوصیت Enabled تایمر رو True کنید. به خصوصیت Interval دقت کنید. بعدا این خصوصیت رو تغییر دهید.

شکل فرم بصورت زیر خواهد شد:

برای دکمه برنامه زیر را بنویسید:

if (textBox1.Text != "")
{
    listBox1.Items.Add(textBox1.Text);
}

این کد به این معنی هست که اگر TextBox خالی نبود محتویات آنرا به ListBox اضافه کن! (خطاب به کامپیوتر)

برای تایمر برنامه زیر را بنویسید (روی تایمر دابل کلیک کنید):

progressBar1.Value++;
if (progressBar1.Value==100)
{
    Application.Exit();
}

این کد یعنی: مقدار ProgressBar را یکی افزایش بده! اگر مقدار ProgressBar برایر با 100 شد، برنامه را خاتمه بده!

خوب امیدوارم هنوز پر انرژی باشید.

تا اینجای کار تا حدود زیادی با ابزار برنامه نویسی آشنایی پیدا کردید. اما متأسفانه باید بگم هنوز برنامه ای ننوشتیم. تا الآن فقط با مفاهیم اولیه و البته اساسی برنامه نویسی تا حدودی آشنا شدیم. مرحله بعد یه کم نیاز به خلاقیت داره، که مطمئنم کم ندارید.تبریک میگم! شما مرحله خیلی مقدماتی و مقدماتی برنامه نویسی رو گذراندید. ان شاء الله اگر عمری باقی باشه در جلسه آینده با الگوریتم آشنایی پیدا می کنیم.

التماس دعا...


 برگرفته شده از butterfly.blog.ir
۰ نظر موافقین ۰ مخالفین ۰ ۱۰ فروردين ۹۴ ، ۲۱:۴۷
ADMIN