Professional Documents
Culture Documents
-0-
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
2021 / 2020
-1-
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
-2-
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
إهداء
-3-
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
نبذة عن المؤلف
2002بتقــد ر مــاد جيــد مــق اليــة اآلداب ـ جامعــة فــب اآلداب مــق مســم الجغرافيــا شــط ة ـ ار درجــة الليســان -
المنوفية.
درجة الماجستير فب اآلداب ( جغرافيا ) بتقد ر ممتاز مق جامعة المنوفية .2010 -
درجــة الــداتو ار فــب اآلداب ( جغرافيــا ) بمرت ــة المــرل اصولــا مـ التوصــية بــالآل والنمــر مــق اليــة اآلداب جامعــة -
المنوفية .2015
الدورات التدريبية :
دورة . ICDL
دورة . ICTP
دورات فى نظم المعلومات الجغرافية واالستشعار عن بعد:
-4-
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
المماراة فا فامليات مؤتمر سيناء بيق الماضا والحاضر والمستقبل الل الفترة مق 2015/ 19-18بكلية اآلداب
جامعة المنوفية.
فا مصر برماية المنظمة الدولية للآليران المدنا الل الفترة 24-23 المماراة فا فامليات أول مؤتمر للجيوماتك
ابريل . 2017
المماراة بوحدة الجودة بالكلية ضمق فريقها التنفيذى بمطيار ( الهيكل التنظيما ).
المماراة فا تحكيم مسابقة أنتل للعلود والهندسة ISEFبإدارة منول التعليمية 2017د.
المماراة فا مسابقة أنتل للعلود والهندسة ISEFلجنة التحكيم 2018د.
المماراة فا مسابقة ال احث الصغير ملا مستوى محافظة المنوفية (إشرال بحثا) ماد 2019د.
المماراة فا مؤتمر المدن الذاية Smart Cityوالتنمية المستدامة ماد . 2019
المماراة فا المؤتمر الجغراف ا الدولا الثالث بكلية اصداب جامعة المنوفية " مراز ال حوث الجغرافية والكارتوج ارفية
.2020
اإلنتاج العلمى:
بحث بعنوان العالمات المكانية لجزيرة وراق الحضر والقاهرة الكبرى اإلصدار رمم 105لمهر ابريل 2016مق مجلة
بحوث الية اآلداب جامعة المنوفية .
الحد ثة فا ال حث الجغرافا مقارنة بالآلرق التقليدية بالتآلبيق ملا الخصا ص بحث بعنوان استخداد تقنيات الجيوماتك
العمرانية بميا ة حسق مامر القماش" بمد نة شبيق الكود"(الدراسة الميدانية وتحليل البيانات) 2017د.
والهواتف الذاية لرصد المماكل البيئية بالتآلبيق ملا مد نة منول. بحث بعنوان استخداد تقنيات الجيوماتك
فب تقييم مستويات التلوث الضوضا ب بمد نة منول ؛ رشا صابر نوفل ؛ منا جابر بحث استخداد تقنيات الجيوماتك
؛ المؤتمر الدولا الثالث بكلية اصداب جامعة المنوفية.
كتب للمؤلف
-1الرسم والتحليل ببرنامج ) ( (Arc GIS Desktop "10.3" Manualالجزء اصول)؛ 2017د.
-2الرسم والتحليل ببرنامج ) ( (Arc GIS Desktop "10.3" Manualالجزء الثانا)؛ 2017د.
-3استخداد تقنية نظم المعلومات الجغرافية والهواتف الذاية فا الدراسة الميدانية Cloud Manual & Mobile Data GIS
2017Collection Manualد
-4تحليل الصورة الفضا ية ببرنامج )" (ENVI Classic 5" Manualالجزء اصول 2017د.
-5السلسلة اصولا Arc Tool boxصندوق أدوات التحليل المكانا Spatial Analyst Toolsالجزء اصول؛ 2017د.
-6دليل استخداد 2018 / 2017 ARCGIS PROد.
-5-
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
-8تحليل الم كات فا نظم المعلومات الجغرافية بالتآلبيق ببرنامج Arc GISإصدار 10.5؛ . 2018
-9نظم المعلومات الجغرافية "ممروع تآلبيقب" ؛ داتور محمد ربي مآلوش و داتورة رشا نوفل .2019
-12التحليالت المكانية التحليالت المكانية فب نظم المعلومات الجغرافية ؛تآلبيقات ملا برنامج .Arc GIS
-13تحليل الصورة الفضا ية ببرنامج )" (ENVI Classic 5" Manualالجزء اصول 2017د.
-14تحليل المر يات الفضا ية ببرنامج (ENVIتآلبيقات مملية ملا )ENVI 5.3الجزء الثانا ؛ 2020د
هذ الكتب متوفرة ملا ش كة اإلنترنت (الصفحة الرسمية للداتورة رشا نوفل)
#https://www.facebook.com/pg/Dr.RashaNofal/videos/?ref=page_internal.
-6-
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
تقديم
بسم هللا الرحمق الرحيم والصالة والسالد ملا أشرل الخلق سيدنا محمد صل هللا مليه وسلم أما بعد؛ جاء
هذا الكتاب تحت منوان أساسيات البرمجة المكانية بلغتا ال ا ثون والـ R؛ لما لهم مق أهمية فب إطار
التحليالت المكانية للبيانات الجغرافية بصفة مامة ونظم المعلومات الجغرافية بصفة اصة ؛ لذلك فكان
لزاما ملينا أن نلقا الضوء ملا مثل هذ الموضومات لت از د أهميتها واتساع مجتم مستخدما ومآلورى
برامج نظم المعلومات الجغرافية وماً بعد ود .
أص حت البرمجة أمر أساسا فب حياتنا اليومية حتا ان اشتملت ملا اافة التخصصات ؛ اما تعتبر
البرمجة فب الومت الراهق هب الدرع الواما لمعظم العلود لما تقدمه مق حلول سريعة للمماكل التب تواجهها
؛ وبصورة موازية للبرمجة دور مظيم فب ملم الجغرافيا حيث مدمت العد د مق البرمجيات التب تسامد
الجغرافييق ملا القياد بمهامهم .
الجد ر بالذار أن تعلم أي لغة برمجة مثلها مثل تعلم اللغات المختلفة اإلنجليزية والفرنسية إلخ ؛ فتحتاج
مننا معرفة اصساسيات والقوامد التب يجب ات امها حتا نصل إلا اإلتقان ؛ ولذلك جاء هذا الكتاب بأربعة
أبواب فب 24فصل تناول ال اب اصول أساسيات لغة ال ا ثون وذلك مق الل مرض لمعنا المتغيرات
؛العوامل ومفهود المروط والدوال وأشهر المكت ات ؛ ليأتا ال اب الثانا بتعلم لغة ال ا ثون فب بيئة نظم
المعلومات الجغرافية وذلك فب أربعة فصول وال اب الثالث أساسيات لغة الـ Rليراز ال اب الراب ملا
تحليل البيانات الجغرافية بلغة Rمق حيث انماء ريآلة وتحليل البيانات سواء الـ Vectorأو .Raster
وهذا الكتاب يعتبر حجر اصساس فب تعلم لغة ال ا ثون والـ Rبصفة مامة وفا GISبصفة اصة .
-7-
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
فهرس الموضوعات
16 مقدمة.
80 مقدمة.
82 الفصل الثامق :مقدمة مق ال ا ثون فا برنامج .Arc GIS
102 الفصل التاس :المعالجة الجغرافية باستخداد لغة ال ا ثون .
113 الفصل العاشر :إنماء أداة جد دة بال ا ثون دا ل ArcGIS
-8-
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
137 مقدمة.
-9-
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
مقدمة
- 10 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
مقدمة
ان أجهزة الكمبيوتر مادرة ملا أداء مهاد معقدة للغاية ؛ لكق هذ القدرة غير فآلرية ؛ حيث
ال يمكق لجهاز الكمبيوتر القياد بوظيفية رياضية معقدة مق ذاته .
اللغة بصفة مامة ها وسيلة للتعبير مق اصفكار وتسجيلها ؛ وهناك لغات مق حولنا ال
تآللب التحدث مثل لغة الجسد فها مادرة ملا التعبير مق ممامرنا دون مول المة واحدة .
ويستخدد اصشخاص مدد مق اللغات المختلفة والتا تتآلور ال ود حيث تظهر المات
جد دة وتختفا الكلمات القديمة وتسمى هذه اللغة باللغات الطبيعية .
فأجهزة الكمبيوتر تحتاج إلا لغة وتسمى هذه اللغة بلغة اآللة وتعتبر هذ اللغة لغة بدا ية
فجمي أجهزة الكمبيوتر حتا المعقد منها للغاية مق الناحية التقنية تخلو مق الذااء ؛ فيمكق
وصف الكمبيوتر بالكلب المدرب تدريب مالا فهو يستجيب فق لألوامر ؛ وتسما ما مة
اصوامر بالـ ILأو .ILS
: IEXLSوتعرل باسم القاموس وها مجمومة مق الكلمات تقدد اللغة لمستخدميها .
دالالت :مجمومة مق القوامد التا تحدد ما إذا اانت ع ارات معينة منآلقية ؛ فمثال أكلت
التورت ع ارة منآلقية ؛ التورت أكلتنا ع ارة غير منآلقية.
أبجدية لغة اآللة ( : )ILها مجمومة مق الرموز اصساسية التا يمكق استخدامها المآلاء
أوامر لجهاز امبيوتر ( اللغة اصد للكمبيوتر) ( .صفر وواحد) ؛ فنحق نحتاج إلا لغة
ممتراة بيق أجهزة الكمبيوتر وال مر اجسر بيق العالمييق المختلفييق.
ولهذا السبب ظهر بعد ذلك لغة أكثر تعقيدًا مق لغة اآللة وأبس بكثير مق اللغة الآلبيطية
وتسما هذ اللغة ( لغات برمجة مالية المستوى) وتم ه الرموز الآلبيطية حيث تستخدد
الرموز والكلمات واإلتفاقيات التا يمكق أن يقرأها ال مر.
يآللق ملا البرنامج المكتوب بلغة برمجة مالية المستوى بـ " اود المصدر".
برمجة الكمبيوتر هى عملية تكوين عناصر لغة البرمجة وال بد من توافر مجموعة من
الشروط منها -:
معجم ًا :لكل لغة برمجة لها ماموسها وتحتاج إلا اتقانها .
ولسوء الحظ مد يخآلاء المبرمج ويقود بارتكاب أ آلاء فا القوامد السابقة فيكون البرنامج
مديم الفا دة؛ ولكق السؤال الذى يآلرح نفسه اآلن هو أنه مند االنتهاء مق تنفيذ البرنامج
بنجاح ايف نجعل جهاز الكمبيوتر يقود بتنفيذ هذا البرنامج ؟
- 12 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
إذن ال بد مق التحويل إلا لغة اآللة ؛ وتسما مملية التحويل هذ بالترجمة ؛مق الممكق أن
تتم مملية الترجمة إلا لغة اآللة مق طريق جهاز الكمبيوتر مما يجعل اصمر سهل إلا حد
ما.
طرق التحويل من لغة برمجة عالية المصدر إلى لغة اآللة -:
التحويل البرمجى :حيث تم ترجمة البرنامج المصدر مرة واحدة وبذلك تم تكرار هذا
اإلجراء فا ال مرة نقود فيها بالتعد ل ملا التعليمات البرمجية.
ترجمة :حيث تم ترجمة البرنامج فا ال مرة تم تمغيله ؛ ويآللق ملا البرنامج الذى
يقود بهذا اصداء " مترجماً" حيث يفسر المفرة فا ال مرة يعتزد فيها تمغيل البرنامج.
تم وض برنامج الكمبيوتر فا ملفات نصية " م مراماة أنها يجب أن تكون الية مق
الز ارل واصلون والصور " ويتم استدماء المترجم والسماح له بقراءة ذلك الملف " ملف
المصدر" فيق أر المترجم شفرة المصدر مق االملا إلا اصسفل ومق اليسار إلا اليميق
ويتحقق المترجم مق جمي ا صسآلر مق حيث الجوانب اصرب السابق ذارها " أبجديا –
معجما – نحويا – دالليا ".
فإذا وجد المترجم آلأ فينها ممله ملا الفور ويعآلا رسالة آلأ م ذار سبب الخآلأ ؛
ومد تكون هذ الرسالة غير صحيحة حيث ال يستآلي المترجم معرفة نوايا المستخدد
بالظ .
- 13 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
المترجم نوعيين:
:Interpreterحيث تم إد ال الكود اليه ويخرجه فا صورة يفهمها الجهاز " الـ out put
؛ يحدد الخآلأ ومكانه بمجرد الحصول ملب آلأ تومف حتب اصالح الخآلأ ؛ اما يحدث
فا ال ا ثون .
- 14 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
الباب األول
- 15 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
مقدمة.
ال ا ثون مثلها مثل أى لغة برمجة أ رى Cو C++و C#؛ها لغة مالية المستوى
ومستخدمة ملا نآلاق واس .
أ ترمها Guido Van Rossum؛ وسميت ملا إسم مسلسل اوميدى تلفزيونا مديم لهيئة
" MONTYاإلذامة البريآلانية " يسما Python,s Flying Circus؛ واان اول إصدار
لها ماد 1989؛ وتستخدد ال ا ثون لتحليل البيانات ووض حلول لمماكل العلود المختلفة .
-مق المميزات المثيرة أنه مق ماد بهذ اللغة شخص واحد ؛ حيث انه مق الغالب أن تم
إنماء لغات البرمجة مق طريق شراات .
موة لغة المنافسيق الر يسيق . لغة سهلة وبد هية وبنف -
-مفتوحة المصدر حيث يمكق صى شخص المساهمة فا تآلويرها.
-رموزها مفهومة فها مثل اإلنجليزية العادية لذلك فها لغة سهلة القراءة ؛ باإلضافة إلا أنها
لغة معبرة.
-مناس ة للمهاد اليومية .
-مق السهل تعلمها حتا لغير المبرمجيق ملا الل اللغات اص رى ومق السهل تدريسها.
-مق السهل الحصول مليها واذلك الحصول ملا مكت اتها.
-لغة مثالية لحل المماكل العددية والتحليلية .
؛ ماك إلخ. -متاحة لمعظم انظمة التمغيل " ويندوز ؛ لينك
-يمكنها التفامل م الغات أ رى .
-التعامل م اص آلاء سهلة فا ال ا ثون.
- 16 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
يمكق إضافة مكت ات إليها فها مابلة للتمد د ؛ فا حيق أن اللغات اص رى تقييد -
المستخدميق فها تحتوى ملا مدد محدود مق الخوارزميات .
-مجتم با ثون نمو بسرمة ابيرة ؛ حيث أص حت تستخدد فا العد د مق المجاالت .
-لغة ال ا ثون ذات مستوى مالا فالكود الخاص بها أش ه بالـ pseudo codeبسيودو
كود ؛ فالمبرمج يعبر مق أفكار بعدد مليل مق التعليمات البرمجية ومد تكون مقروءة ؛ ففا
اللغات اص رى نحتاج إلا ممريق سآلر أما فا ال ا ثون يمكق فا سآلر واحد .
-تحتوى ملا العد د مق المكت ات تدمم الحوس ة العالمية " N Net work , Wep
.Server , games , …..
تحتوى ملا مجمومة متنومة مق بيئات التآلوير المتكاملة القوية والتفاملية ( )IDElمثل -
. IPython , notebooks , pycharm , spyder
wep ويب " لغة ال ا ثون متعددة االست خداد ؛ فيمكق استخدامها لعمل موام
"Development؛ ولعمل اصلعاب .)PyGame ( Gamesو تستخدد فا Hacking
؛ للتعامل م ملود البيانات " Mjachine Learning؛ الذااء االصآلناما AIوجم
البيانات وممل . Roobts
- 17 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
أيضا فال ا ثون تجم بيق ملود الكمبيوتر واالحصاء لحل المماكل العالمية ويستآلي
المهندس والآلبيب استخداد ال ا ثون إليجاد حلول للمماكل ؛ فال ا ثون تسامدنا ملا حل
المماكل فب العلود ذاتها .
- 18 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
- 19 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
وفا البداية يفضل استخداد Python IDLEلتتعلم ايفية اتابة اصكواد بآلريقة صحيحة
فهو ال دمم Auto Complete؛ وفيما بعد فا المراحل المتقدمة يمكق استخداد واجهات
هذ البرامج ومق أفضلها Py charmأو .Visual studio
pc Charmهو محرر برمجا IDEبنا صيصًا لمبرمجا لغة ال ا ثون ويتميز بالعد د
مق المزايا التا تجعل البرمجة أسهل ؛هناك نسختيق مق البرنامج اما سبق وأن ذارنا " تم
تحميل نسخة المجتم "
تحميل البرنامج:
https://www.jetbrains.com/pycharm/download
- 20 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
؛ ونفتح البرنامج بعد تثبيته ملا الجهاز لتظهر نافذة البرنامج ملا النحو التالا :
نفتح ملف جد د وذلك مق طريق الذهاب إلا Scriptsفا يسار الماشة ؛ اليك يميق
وإ تيار newثم python file
- 21 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
للبدء فا العمل ؛ بمجرد الكتابة ملا البرنامج نجد أن هناك امتراحات وهذا لتسهيل اتابة
اصكواد ؛فلكتابة hello python؛ نكتب " print " hello python؛ الحظ النافذة التالية
- 22 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
- 23 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
مقدمة.
أى تآلبيق برمجا ع ارة مق أكواد؛ والبيانات الخاصة بالتآلبيق؛ فعلا سبيل المثال لدى
تآلبيق تعامل م الجامعة ؛ فالجامعة ع ارة مق طالب وأساتذة وموظفيق(هذ ها البيانات
) ؛ واصكواد ها التا تقود بعملية إدارة هذ البيانات والتعامل معها .
أنواع البيانات:
اصرماد .Numbers
النصوص .String
الـ . pool
هذ البيانات تم تخزينها فا ذاكرة الكمبيوتر؛ ويتم استخداد مجمومة مق المتغيرات لالشارة
إلا موم هذ البيانات ؛ وهذا ال يعنا ان المتغيرات تحتوى ملا البيانات؛ بل ها تمير
فق ملا مكان البيانات دا ل الذاكرة .
" Variablesالمتغيرات":
تم حجزها فب الذاكرة لتخزيق البيانات اما سبق وأشرنا ؛ المتغيرات هب مجرد أماكق فق
والمتغير هو اسم يمير إلا قيمة متغيرة مثل x = 5؛ ويتكون المتغير فا لغات البرمجة
مق جز يق Nameاالسم و Valueالقيمة ؛ ويمكق أن نض لالسم أى قيمة ولكق ال بد
مق مراماة ما لا مند ا تيار اسم للمتغير - :
وهذ الكلمات لسنا مآلالبيق بحفظها الن ال ا ثون يعرفها وبالتالا رفض اتابتها ؛ فعند
كتابة أى المة مق الكلمات المحظورة تم تلويق الكلمة بلون مختلف ومند اتابة الكود
بآلريقة اطئة يعآلا لنا رسالة . SyntaxError
X=5
؛ . y= 3 الجملة مثل ( ) x,y = 5,3تعنا انx = 5 ويمكق تعريف متغييريق بنف
أنواع المتغيرات:
وها إما أمداد صحيحة Integerمثل ( ( x=5أو أرماد ممرية (x=5.3 )Floatأو
complexأرماد مرا ة) (y= 4jوتستخدد مق مبل المهندسيق فب الغالب الجراء ممليات
حسابية معقدة ؛ ويتم وض حرل jأو Jبعد الرمم م اشرة لنعرل مترجم ال ا ثون أن الرمم
مادى . مراب ولي
-2النصوص ( : )strings
أو دبل اولون هب نوع مق أنواع المتغيرات والت تم اتابتها بيق سينجل اولون ‘ ؛
أو تربل اولون """ """...وتستخدد السيجنل والدبل اولق لكتابة اود مق " "..........
سآلر واحد بينما تستخدد """ العالمات اص رى لكتابة اود مق مجمومة أسآلر؛ والنصوص
- 26 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
ال تعبر فق مق اتابة اصحرل فب لغات البرمجة فأى شبء مكتوب دا ل الكول ق تحسب
ملا أنها متغير مق نوع stringحتا لو اانت أرماد؛ اما موضح بالنافذة التالية؛
تستخدد هذ المتغيرات لوض شروط منآلقية أو معرفة ما اذا تم تنفيذ أمر معيق بنجاح أو
ال وهذ المتغيرات فق إما صح أو آلأ ؛ مثل السؤال بهل ؟ فله قيمتيق فق Trueإما
False؟.
حيث تم تخزيق البيانات فب مصفوفة حجمها غير ثابت ويمكق تخزيق قيم صنواع مختلفة
الومت ويتم اتابة المتغير مق نوع listدا ل [ ]؛ وذلك ملا النحو الموضح دا ل فب نف
نافذة ال ا ثون
- 27 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
وهو ع ارة مق مصفوفة حجمها ثابت وقيمها غير مابلة للتغيير وتستخدد اصمواس ( )
لتمثيل هذا النوع مق المتغير دا ل ال ا ثون ؛
ملحوظة تم استخداد الدالة lenلمعرفة طول مناصر المتغير " مدد القيم ".
- 28 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
: Printوظيفتها ط امة أى المة ملا الماشة ؛وما نريد ط امته يكتب بيق اصمواس ؛
فمثال تم اتابة ) print ( typeفيتم ط امة نوع المتغير .
- 29 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
مقدمة.
العامل يعنا رمز له معنا محدد ؛ وجد فا ال ا ثون 7معامالت ) arithmetic ,
)Compraison , logical , Bitwise , Assignment , Membership , Identiry؛
وفيما لا تم شرح أشهر هذ المعامالت انتما ًار:
مثال
= = معناها هل ؛ مثل x == 5؛ هل قيمة xبتساوى 5؛ اإلجابة إما Trueأو False
ففا المثال مند اتابة x==5يعآلا Trueو x = = 4يعآلا . False
- 30 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
- 31 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
بوك ؛ يستخدد شرط صمريق مثل اسم المستخدد والمة المرور مثال للد ول فا الفي
- 32 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
تطبيق :
"password = "12345
لو اتبت آلأ بالكود يظهر رسالة وجود آلأ م تهمير الخآلأ باللون اصحمر
- 33 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
أ تار ok تم تصحيح الخآلأ وإمادة Run؛ تظهر الرسالة التالية
تنفيذ or؛
- 34 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
فهنا المطلوب لو تحقق شرط واحد اطبع login succe welcom ali
تطبيق :not
false المثال التالا يعنا انه إذا اانت قيمة xال تساوى 20فاط
= )8) / 2 + 15
= . 19 = 4 + 15
- 35 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
الشرط هو وض ميود محددة لتنفيذ الكود؛ فلو المرط صحيح تم تنفيذ الكود؛ ولو المرط
آلأ لم تم تنفيذ ؛ وتستخدد المروط لتحد د طريقة ممل البرنامج؛ ويمكق استخداد العد د
IF X==S: مق المروط دا ل البرنامج الواحد؛ مثال X = 5وسألنا با ثون
و ال بد أيضا مق وض نقآلتيق :نهاية المرط وتعنا ان الجملة فا السآلر التالا تكملة لما
بالسآلر الذى فومه وتلقا يا تترك مسافة للسآلر فومها أى نرب أن )" Print ( "x=5ترت
الثانا.
X =5؛ ولكق لو لم تم اتابتها دا ل " " مالمات امت اس وتكتب ( print (Xفيآل
القيمة فق " " 5م مراماة ممل enterمرتيق.
- 36 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
معناها إذا اان المرط صحيح نفذ الكود ؛ وإذا اان المرط آلأ نفذ اود أ ر؛ مثال
X=5
Else:
- 37 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
تطبيق 2
تم اتابة الكود صحيح فينفذ الجملة ويكتب login succe welcom ahmed
بينما إذا تم اتابة الكود آلأ اكتابة اسم المستخدد آلأ أو ال اسورد
- 38 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
: IF……Elif
تعآلا ا تيارات مثل elseلكق الفرق بينهما أن Elifيكتب بجوارها شرط بينما
elseاانت بدون شرط .
يجب مراماة أنه فا هذ الحالة يآلبق الكود بمجرد وجود المرط الصحيح وال يقود بإكمال
آلأ فال وجد نتيجة ولكق إذا مراءة اصسآلر التا تليه ؛ وإذا تم وض جمي اصكواد
ما القيمة بجوار . else وضعت elseاما موضح ؛ فمعنا أنه لو االكواد آلأ أط
- 39 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
الناتج :
مثال :
- 40 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
وبعد Runيكتب
الجملة ملا print ("y=10") if y==10 else print (y (.معناها لو الكود صحيح إط
ما ملا اليسار . اليميق ولو آلأ أط
- 41 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
مثال :استخداد Allتعنا أن جمي القيم صحيحية ففا المثال ال القيم صحيحة
المثال نجعل بعض القيم صحيحة وبعضها غير صحيح وفى حالة any؛ فا نف
- 42 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
إذن فا anyمندما يكون بعض المروط صحيحة حتا لو شرط واحد فق ملا اصمل .
تكتب التعليقات لوصف العمليات التا تقود بعملها ؛ تم اتابة التعليق بحيث يس قه مالمة
اود برمجا ؛ #؛ هذا الكود مجرد وصف ولي
فقد يكون ع ارة مق معلومات مق الملف ؛ تاريخ انماء الملف وسبب انما ه ؛ ويمكق
كتابته فا سآلر منفصل ويمكق اتابته بجانب الكود البرمجا .
ويمكق ممل اومنت للكود البرمجا لتوقيف تمغيله فا الومت الحالا ؛ فعمل تعليق ومف
ممل .run
- 43 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
:LOOPSالتكرار أو الحلقات التك اررية فا لغة البرمجة تعنا تجمي ممليات مكررة فا
ال لو لد نا
الكود مدة مرات ؛ فمث ً وظيفة واحدة ؛ أي أن الحلقات تستخدد لعدد تكرار نف
بيانات العمالء بالمراة فبدل مق الد ول ملا شراة بها 1000مميل ومحتاجة أط
اصلف مميل لآل امة بياناتهم تم ممل Loopsلجمي العمالء ؛ و Loopsأربع أنواع
هما :
While Loop
Infint Loop
For Loop
Nested Loop
" : While Loopطالما أو بينما" وتستخدد هذ الحلقة لتنفيذ الكود مدة مرات غير
محدودة ويتومف تنفيذ الكود إذا تحقق شرط ما .
X=1
)Print (x
X += 1وضيف 1
- 44 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
- 45 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
الناتج أنه يكتب 1إلا ما ال نهاية حتا تفصل أو تضغ ملا ctrl cفيتم ايقال الآل امة.
مثلها مثل استخدامها فا IFحيث يعآلا ا تيارات أكثر ؛ ولكق تختلف مق elseفا
ifفا أنه إذا تحقق المرط يكمل مراءة الكود والتآلبيق مليه ملا الل " IFمجرد تحقيق
المرط ال ذهب لما تحته مق أسآلر "
مثال :
- 46 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
xم إضافة قيمة 1مليه ال مرة ؛ ففا المثال يعنا أنه طالما الـ xأصغر مق 10أط
. x >= 10والناتج اما موضح بالماشة التالية: أو elseأط
ويمكق اتابة الكود الخاص بالـ Whileفا سآلر واحد مثل Single While : if
Statement؛ وهذا أيضًا للت سي فق وتصغير الكود بدال مق اتابته فا أسآلر اثيرة ؛
تستخدد للفصل بيق سآلريق :صن ونالحظ فا نهاية السآلر نض ; سيما اولق ولي
لهم مالمة ب عضهم ال عض. لي
- 47 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
مثال :
- 48 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
مثلها مثل Whileولكق لكل منهما استخدامات ؛ For Loopتعنى لكل " يعنا لكل جزء
مق ال مم بتنفيذ الكود.
enterثم enter؛ فيتم لا حرل ؛ اضغ مثال :لكل حرل مق حرول با ثون أط
ط امة حرول الكلمة :
j
اإلجابة أكيد ال ؛ بل ال ا ثون تعامل Forبمعنا جزء مق الكل ؛ وإذا تم اتابة أى شاء
مكان Letter؛ سول تم ط امة أجزاء المة ال ا ثون " حروفها" ؛ ففا المثال التالا تم
استبدال letterبكلمة Ali؛
- 49 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
نالحظ أنه فا حالة Whileال بد وأن يكون المتغير يساوى قيمة ؛ بينما فا Forال يمترط
أن يساوى قيمة .
مثال :
المة 6 aliمرات ( وها مدد حرول المة فا هذا المثال مند ممل Run؛ يآل
با ثون)؛
) Print ( range 20؛ والستخراج القيم دا ل دالة Rangeيفضل استخداد .list
والمثال التالا يعآلا لنا القيم مق 5إلا 20؛ ولكق زود ال رمميق يعنا – 9 – 7 – 5
15 – 13 – 11؛ وذلك بسبب وض القيمة 2فا نهاية دالة .range
- 51 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
- 52 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
مق تنفيذ المرط تعنا إذا تحقق المرط استمر فا العمل ؛ وفا هذ الحالة تومف فق
اللفة الموجود فيها ؛ ففا المثال الخاص بآل امة المة با ثون إذا اان الموجود فا نف
جمي حرول الكلمة مامدا حرل المرط هو if letter = h؛ Continue؛ تعنا أن تآل
.h
مثال :
- 53 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
- 54 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
نالحظ أنه ال يقود بعمل مسافة بيق اصرماد ؛ فيمكق تنفيذها بوض ""\t
- 55 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
الدالة يمكق تعريفها با تصار أنها مجمومة أكواد منظمة لتنفيذ وظيفة محددة؛
مثال:
- 56 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
والستخدامها للجم بيق أكثر مق رمم؛ يكتب بدل الرمم متغيرات ملا النحو التالا :
- 57 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
Returnتعود بقيمة دا ل الـ Functions؛ وال تآل عها لكق تم الرجوع إليها الستخدامها
أو إضافة متغير مليها .
Localتعنى داخل إطار محدد " حيث يكون التعامل مع القيم داخل الدالة فقط .
: Globalوضعها دا ل الكود يعآلا لنا انآل اع أن التعامل يكون ارج نآلاق الدالة .
سبق وأن ذارنا أن المتغير يمير إلا مكان وجود البيانات ووضحنا أنواع المتغيرات ؛ والتب
أنواع يعبر وجودها مق نوع البيانات التب تحويها ؛ ولذلك فانواع البيانات هب نف
المتغيرات ويمكق ذارها وايفية التعامل معها دا ل لغة ال ا ثون ملا النحو التالا:
: Python Strings -1يعنا أى شاء بيق سنجل اولق أو دبل اولق " " أو تلربل
كولق """ """ ؛ ويسما Stringsالنه تم وض أى شاء دا له سواء متغير أو قيمة .
مثال:
من 2إلى
النهاية
- 58 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
مثال توضيحا:
مثال( :)2
تطبيق:
إال \ واحدة ؛ فلآل امة \\ نالحظ أنه فا السآلر الثانا مق Printوضعت \\ ولكنه لم يآل
ال بد مق وض rمبل الكود ؛ اما موضح فا الماشة التالية :
- 59 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
)( : Issupperلمعرفة هل الكلمة اابتل وال الء ؛ واالجابة أيضا بـ trueأو .false
)( : Findلل حث مق شاء معيق وتحد د مكانها ؛ وها تحدد اول حرل تجد ؛ ولم
تستمر فا ال حث .
)( : Indexمثل Findولكق إذا لم تجد قيمة ال حث أو المة ال حث تكتب لنا not
.found
- 60 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
)( : Replaceتغيير المة مكان المة أو قيمة مكان قيمة ؛ مثل الموجودة فا الوورد.
" " Updating Listنكتب القيمة المراد تحد ثها ملا لو محتاج أحدث قيمة مقlist
النحو التالا
)( : Lenتعآلا لنا طول السآلر " مدد القيم المستخدمة ".
)( : Appentتم إضافة القيمة فا أ ر السآلر تلقا ب لكق Insertالتا تم تحد د مكان
اد ال القيمة .
وتمسح حيث تم ط امة القيمة أو المتغير ومسحها مق الكود؛ فلو ممنا )( : Popتآل
بعمل Printنجد أن قيمة Popتم مسحها .
- 61 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
تم ه Listولكق اال تالل فا اصمواس فالـ ) ) Tuple؛ ولعمل تحد ث للداتا فا Tuple
يكون اصمر صعب ؛ فهو ال يسمح بالتحد ث ؛ ولكق يمكق التعد ل مق الل الجم فق
؛ ويمكق التحا ل ملا با ثون بتحويل Tupleإلا Listثم إجراء تعد الت مليها ثم تحويلها
مرة أ رى .
: Delet Tuple Elementالمسح يكون للكل ؛ النه ال يمكق التعد ل وباتالا ال يمكق
مسح قيم مق دا ل الكومق.
:Dictionary -4
:ويأ ذ موس تكون القيمة الواحدة مق قيمتيق Keyو Valueيفصل بينهما الكومق
المجمومة } { .
- 62 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
-ال بد وأن تكون " umutable Keyغير مابلة للتعد ل "فال يمكق أن تكون . lest
)( : Updateاضافة ماموس الا ماموس أ ر؛ يعمل تحد ث مق ماموس لقاموس أ ر.
الفصل السادس:
-اتآلورت ماد1960؛ واانت تآلبق ملا لغة تسما Small talk؛ الفكرة منها ها طريقة
فا اتابة وتنظيم الكود .
: Object
حيث أن المبرمجيق أثناء تنفيذهم للغة تخيلوا أن المستخدد يمكنه التعامل م أنواع متعددة
مق البيانات ؛ ومد سبق الحد ث مق أنواع البيانات فقد تكون رمم صيح ( ( integer
وتختصر بـ intأو رمم ممري أو float؛ والحرول م االرماد ( ) Stringوتختصر str؛
والبيانات التا تكون اجابتها بصح أو آلأ ( )Booleanوا تصارها bool؛ ولو البيانات
- 64 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
ع ارة مق مجمومة قيم تسما listونوع أ رى يسما tupleوها أيضا مجمومة قيم ولكق
تختلف مق listحيث ال يمكق التعد ل مليها.
-أى قيم بيق سنجل اود ‚ ‚ أو دبل اود فها " " .str
ولتعدد هذ البيانات تم ممل حقي ة لتحوى هذ البيانات وتسمب class؛ وأص ح هناك ما
يسمب بال class intلالرماد الصحيحة و. class str
وسبق أن ذارنا أيضا ان لكل نوع مجمومة مق " Built – inالدوال التا يمكق تآلبيقها
مليها .
: Classesسبق وأن وضحنا أن Classبمنتها ال ساطة ع ارة مق حاوية أو حقي ة تم
فيها جم الدوال والقيم الخاصة بالبيانات أيا اان نومها .
وال حقي ة ال بد وأن تتناسب م البيانات التا تحويها ؛ ويمكن الشرح بمثال هناك شراة
سيارات تقود بعمل تصميم للسيارة التا تنتجها وهذا التصميم تم تآلبيقه با تالل اصلوان
ويمكق تآلوير أيضًا ؛ فالتصميم اصساسا للسيارة هو الـ class؛ والسيارات المختلفة
المنتجة مق هذا التصميم تسما Object؛ فهناك Object1و Object 2إلخ.
- 65 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
وبعد ذلك يمكق نسخ هذا الـ class؛ ( ممل )obgectويمكق توضيح فكرة ذلك بفتح
IDEL Sellواتابة الـ classملا النحو الموضح أدنا ؛ وبمجرد اتابة S.colorيآل
اللون "أحمر" اللون الذى تم إنماؤ دا ل classاما يمكق تغير اللون أو تغير أى
الـ .Class صا ص موجودة النتاج العد د مق objectالمختلفة لنف
- 66 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
فا classولذلك تسما Methodsها دوال مثلها مثل أى دوال لكنها بتوض
Methods؛ وأى Methodيعتبر Attribute؛ ولكق Attributeال يعتبر Methodالن
Methodيكون فيها فعل actionمثل فتح ال اب ؛ زيادة اإلضاءة و الـ Attributeلي
بها فعل فها مجرد اصية .
Attrabuteوتعرل أيضا بالـ probertesها مجرد قيمة أو اصية توض للـ object
أو النسخة الخاصة بب .
أى objectله " Methodأي " actionو " Attributeاللون المكل ."...
معنا : selfمجرد المة تحجز مكان دا ل الكود هذا المكان "اسم " object
- 67 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
الناتج وجود آلأ ؛ هذا الخآلأ يعنا أن testبتا ذ 0و ال تأ ذ arguments؛ ولكق
با ثون أمآلتها قيمة " 1اسم "obgect
- 68 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
Constructor
)"Print ("----
القيمة التا نعآليها فا classتسما " Class Attributeقيمة " " classومندما نغير
هذ القيمة فا النسخة الخاصة بب " "objectفهذا يسما .Instance Attribute
مثال توضيحى :عندى classاسمه cars؛ و red؛ فيعتبر هذا اللون هو قيمة الـ
Attributeدا ل classولذلك يسما بالـ Class Attributeبينما فا حالة ا ذ نسخة
منه " "objectونقود بتغيير اللون إلا greenفهذا التغير يسما Instance Attribute
- 69 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
ولكق مند ممل نسخة جد دة objectملا النحو التالا Instance Attribute؛ فهنا اللون
greenاص بهذا االوبجيكت فق .
- 70 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
االسم (" interface " )method name؛ ولكق الكود الخاص مندى Class 2لهم نف
المفهود. بهم مختلف وبيؤدوا نف
بيق الـ Classبالـ " parentالتا تورث منها " ؛ لنستدما نستخدد المة Superللرب
ال methodالموجودة دا ل . parent class
فنض المة Superفا ال classالجد د مندما أحتاج لوراثة شاء مق ال_ parent
classوأضيف methodأ رى جد دة مليه .
- 71 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
تعنا ان مندنا classتورث مق class aو class b؛ ففا الكود التالا ؛ تورث class
bمق a؛ اما تورث class dمق b,c؛ فهل نقذ dowithالموجود فا cأد dowith
الموجود فا " aفا حيق أن bورثاها مق "a
نجد نفذ iam in aيعنا الموجود فا a؛ النه يأ ذ بترتيب اص " ترتيب أولويات "
method؛ يسما ( )method resution order؛ ولو محتاج أمرل هذا الترتيب
)) )print(d.mro؛ فيتم ط امته .
- 72 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
موجودة فا مسار ال ا ثون " ؛ ويتم ممل importله بثالثة طرق هما :
نكتب import os؛ والـ osا تصار لـ opreted systemع ارة مق moduleاص
بنظاد التمغيل اانماء ملف ؛ مجلد جد د ؛ التحرك مق مسار إلا مسار إلخ .
- 73 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
ففا حالة اتابة import osمعناها استدما ال شاء مق moduleالذى يسما os؛
وفا هذ الحالة ال بد مق اتابة os.وبعد ذلك اسم methodدا ل . module
Mkdirالخاصة
بانشاء مجلد
الفرق بينها وبيق الآلريقة اصولا أنه فا الآلريقة اصولا تم استدماء ال شاء دا ل os؛
وهو الخاص بانماء مجلد وتكتب بهذ بينما فا الآلريقة هذ تم استدماء mkdirفق
الآلريقة .
* فا لغات البرمجة أو موامد البيانات تعنا ال شاء ؛ فمعنا اتابتها انه تم استيراد ال
شاء " ال المكت ات " وملا الرغم انه طريقة جيدة إال أنه يسبب ثقل فا البرنامج لكثرة
المكت ات .
فعند تنزيل أى نسخة مق ال ا ثون تم تنزيل pipو esay installو وجد لكل اصدار
pipالخاص به وهو اسكريبت به المكت ات الخاصة ب ا ثون
- 74 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
OS Module
للتعامل م الملفات والمسارات الخاصة بنظاد التمغيل ؛ ميزته لو وجد آلأ يكتب أن
وجد آلأ ونوع هذا الخآلأ.
لآل امة أى قيمة ملا الماشة :نستخدد( " ") print؛ ولو محتاجة أ ذ قيمة مق المستخدد
نكتب )" "(. input
- 75 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
لو محتاج أمرل مكان الماوس فا الملف" المكان الذى تومف مند القراءة نستخدد tell
سبق وأن ذارنا أن لل ا ثون مكت ات مد دة مدمجة فيها واذلك وجد العد د مق المكت ات
اص رى غير المدمجة ؛ فعند اتابة import folium
رسالة آلأ تدل ملا مدد وجود هذ المكت ة ؛ لكنها متوفرة ويسهل تحميلها ؛ وذلك فتآل
ملا النحو التالا
- 76 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
- 77 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
الباب الثانى
البايثون في بيئة
- 78 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
مقدمة.
تعتبر برمجة نظم المعلومات الجغرافية هب ع ارة مق استخداد لغات البرمجة وتوظيفها
لخدمة نظم المعلومات الجغرافية واذلك تقنيق أدوات GISحتا تفب الغرض المآللوب.
تم استخداد البرمجة فب نظم المعلومات الجغرافية لعمل أدوات جد دة وممل برامج جد دة
أيضا؛ وممل موام ويب وفيما يلى عرض لبعض استخدامات البرمجة في مجال نظم
المعلومات الجغرافية- :
-تطوير برامج سطح مكتب :حيث تم ممل تآلوير للواجهات الرسومية المستخدمة.
اصة تخص مماري وأممال " GIS -تطوير تطبيقات الويب :حيث تم ممل موام
"GIS Web Application
-تطبيقات للهواتف المحمولة :وذلك مق طريق ممل تآلبيقات أندوريد تخدد نظم
المعلومات الجغرافية وتخدد المماري الخاصة بها ؛ اتآلبيقات المسح الميدانا
و الفه .
C++؛ أكثر لغات البرمجة أنتما ار دا ل بيئة نظم المعلومات الجغرافيا هب ( Java
C#و , Vbفب اصونة اص يرة ال ا ثون ولغة .) R
- 79 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
وفا هذا ال اب نعرض ايفة االستفادة مق لغة ال ا ثون لكتابة اصوامر البرمجية ضمق بيئة
نظم المعلومات الجغرافية وتحد دا دا ل برنامج . Arc GIS
البرمجة فى ArcGIS
العد د مق تآلبيقات نظم المعلومات الجغرافية العملية معقدة؛ وتتضمق وظا ف نظم
المعلومات الجغرافية المتعددة مثل تعد ل الميزات واالستعالد منها والسمات المرت آلة بها.
يحتاج التكرار إلا فمثال مند تحد د موم أمرب مدرسة لكل طالب فا مرحلة التعليم
المرور مبر ال طالب لتحد د المدارس دا ل حب ذلك الآلالب ثم تحد د موم أمرب مدرسة
الآلالب. مق ابير مدد هناك يكون مندما مرهًقا هذا يص ح ؛
دويا مضيعة للومت ومملية
فيعد إجراء وتكرار االستعالد مق البيانات المكانية ومعالجتها ً
مملة ومعرضة لنس ة ابيرة مق الخآلأ لذلك مق المفيد أتمتة مثل هذ العمليات باستخداد
ArcGIS يسمح وظا ف حزمة نظم المعلومات الجغرافية المتآلورة ؛ حيث
ModelBuilderللمستخدميق بدمج أدوات متعددة مق ArcToolboxلتكويق سير ممل
التحليل فب واجهة مستخدد رسومية.
إن أتمتة مملية فب نظم المعلومات الجغرافية تتضمق مدة وارزميات أو آلوات GIS
أيضا تصد ر مملية
باستخداد حزمة ArcPyو Pythonمملية سريعة وسهلة .يمكق ً
الدفعات المضمنة فب ModelBuilderانصوص Pythonالنصية.
ُ
- 80 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
- 81 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
امتمدت شراة ESRIلغة ال ا ثون كلغة ر يسية فب منتجها الر يسب برنامج " "ArcGISلما
لها مق مميزات سبق الحد ث منها .برنامج ArcGISيستخدد لغة ال ا ثون ك Scripting
.Language
فتح البايثون المتوفرة مع برنامج Arc GIS
مق ما مة Startثم All programsومنها أ تار Arc GIS؛ ومنها Python 2.7
يمكق استخداد سآلر اصوامر اواجهة مستخدد رسومية لسآلر أوامر DOSأو Linux
حيث تم تنفيذ جملة Pythonالمكتوبة فب واجهة المستخدد الرسومية لسآلر اصوامر
م اشرة .هناك العد د مق أوامر Pythonالتب ال يمكق تنفيذها إال ملا واجهة المستخدد
الرسومية هذ وم ذلك فهذ هب أمل نافذة تآلوير صنه ال يمكنك تخصيصها وال تم تلويق
الكود لتوضيح بنية الكود أثناء الكتابة.
- 82 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
إعدادت :IDEL
- 83 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
الكود ونمآله ومرض المسافة ال اد ة من إعداد Fonts / Taps؛ يمكق إمداد حجم
- 84 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
مق Highlightingيمكق تسلي الضوء فتلويق الكود يسهل ملا المبرمجيق التعامل بمكل
يمكق تمييز الكود (بما فب ذلك التعليقات) بألوان مختلفة أفضل ؛ فب Python IDEL
بناء ملا أنواع الكلمات المد لة ؛ فيمكق تمييز الكلمات المفتاحية باللون اصصفر ؛
ً
والتعليقات باللون اصحمر والمتغيرات باصسود ؛ ويمكق التحكم فر هذ االمدادات مق الل
الضغ ملا Highlightingتظهر النافذة التالية :
تم ا تيار اصلون ؛ و Normal Textتم وبا تيار اصمر Choose Colour for
تحد د البيانات المد لة بالكود:
- 85 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
ومق Generalبنافذة اإلمدادات تم ا تيار النافذة المراد تهيئتها (إما النافذة التفاملية أو
وطريقة تمفير وتنسيق الفقرة وحجم النافذة اصولب وايفية حفظ الكود نافذة التحرير)
المصدر.
- 86 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
تصحيح Debuggingاألخطاء:
مملية التصحيح مملية ال بد منها فب البرمجة صنه يكاد يكون مق المستحيل كتابة أكواد
الية مق اص آلاء .وفيما لا مرض المهارات اصساسية لمعالجة اص آلاء:
؛ فتظهر نفتح نافذة ال ا ثون مق شري أدوات Arc map؛ نفتح أيقونة ال ا يثون
النافذة:
مثله مثل أى مترجم؛ فيتم تمغيل اود ال سآلر ؛فاكتب الكود واضغ ملا enter؛ فكتابة
a=5؛ b=9ومآللوب a*bف مجرد الضغ ملا enterتم تمغيل الكود تلقا ياً
- 87 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
تطبيق أخر:
الحظ أن نافذة Pythonتوفر مآلال ات للمسامدة فب الكتابة ملا النحو الصحيح .ملا
تظهر ما مة بـامتراحات مند اتابة importفعندما تبدأ فب اتابة الحرل i سبيل المثال
للكتابة " مناصر الكود التب تبدأ بهذا الحرل اما موضح :
ملا مفتاح Tabمق لوحة المفاتيح ؛ اما يمكق " فيتم ا تيار الكلمة المناس ة والضغ
التجاهل وإكمال الكتابة .
- 88 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
فامآلا التعليمات ولتكق " "print a less than b؛ اضغ ملا enter؛ نالحظ أنه لم
ويبدأ السآلر التالب ؛اضغ enterمرة أ رى فيتم تم تنفيذ سآلر التعليمات البرمجية
تمغيل الكود .
يتم مسح جميع محتويات النافذة مق تعليمات برمجية وأكواد مق طريق الضغ اليك يميق
دا ل النافذة وا تيار .clearAll
تطبيق:3
-اكتب .a=8
؛ وهذا يعرض لنا سآلر ثانوى ويتم إد ال باما التعليمات البرمجية وفا Ctrl+Enter -اضغ
النهاية تم الضغ ملا enter
- 89 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
التعامل مع numbers
يمكق استخداد ال ا ثون اآلة حاس ة موية .الجراء العمليات الحسابية اما تعمل با ثون م
أنواع مختلفة مق اصرماد ونوضح ذلك فيما لا :
فب نافذة Pythonاكتب الكود التالب >>> 54+12واضغ ملا :Enter
والنتيجة ظهرت 3ملا الرغم أنها فا الحقيقة 3.3؛ ولكق ماد حساب النتيجة إفتراضيًا
صن المد الت أمداد صحيحة فال التالا تم حسابها ارمم صحيح ؛ فيتم تقريب الناتج إلا
أمرب رمم صحيح؛ أما إذا انت تريد الناتج الفعلا لعملية القسمة فقم بإد ال اصرماد فا
صورة ممرية :
- 90 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
غالًا ما تُستخدد stringsفب نصوص المعالجة الجغرافية لإلشارة إلا المسار وأسماء
الملفات؛ وفيما لا مرض م س لكيفية التعامل م stringsفا نافذة ال ا ثون:
تم اتابة الكود دا ل مالمات " " سواء مفردة أو مزدوجة ؛ اكتب "" print hello python
واضغ enter؛
- 91 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
م مراماة أنه إذا وجد المات بها مالمات فا وس الكلمة مثل المة Let'sفكتابة الكود
نتج آلأ صن ال ا ثون ال تفرق بيق العالمة الخاصة بهذا المكل '!print 'Let's go
بالكلمة والعالمة فا نهاية الكود
تطبيق:
فقاد بآل امة حرل o؛ فهو الحرل الراب حيث تم الترقيم بداية مق صفر ليعآلا حرل h
رمم : 0
- 92 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
التعامل مع :variables
هذا يعنا أن المتغير xمرت بقيمة 12نتج مق هذا ضمنيًا أن المتغير xمدد صحيح
ولكق لسنا ب حاجة لذار ذلك بصورة م اشرة وبكود إضافب.
ذلك. وبمجرد تعييق قيمة لمتغير يمكنك استخداد المتغير فب التعبيرات التب ستفعلها بعد
- 93 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
التعامل مع : lists
المة Appleفها فا الترقيم 0مق الـ lists؛ ويمكق استخداد اصرماد السال ة فيآل
للحصول ملا الجانب اصيمق مق Lists
- 94 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
استخدام :functions
واستدماء functionsيقود بتزويد الوظيفة بالمعلمات ؛ وتحتوى ال ا ثون ملا العد د مق
؛ فيمكق مرض ملف القا مة الكاملة باستخداد الط ارة الوظا ف القياسية
)__. dir(__builtins
- 95 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
ملا هيا فيما تعلق بالعد د مق هذ الوظا ف التا تم استخدامها مد ال يكون اصمر بد ً
الرغم مق أن بعضها م اشر .ملا سبيل المثال تُرج القيمة المآللقة للقيمة الرممية
استخدام :methods
تطبيق :1
)">>> topic.count("S
- 96 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
وهناك العد د مق الآلرق المستخدمة فمجرد وض نقآلة بعد المتغير تظهر methods
"الآلرق" التا يمكق تآلبيقها :
تطبيق:2
المسارات. م للعمل االنقساد طريقة تآلبيق لكيفية مرض لا وفيما
ملا سبيل المثال نفترض أن المسار هو C:\Users\Default؛ فيتم تآلبيق الكود ملا
النحو التالا:
.
- 97 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
ففب السآلر اصول مق التعليمات البرمجية تم تعييق المسار اسلسلة فب مسار المتغير .فب
وفب السآلر السآلر الثانب مق التعليمات البرمجية تم تقسيم السلسلة إلا أرب سالسل
الثالث مق الكود فإن آ ر سلسلة فب القا مة تم الترقيم ويتم تعيينها إلا آ ر مسار متغير
فا السلسلة.
تطبيق :3
استخدام :modules
هناك مئات الوظا ف اإلضـافية المخزنـة فـب وحـدات ؛ و مبـل أن تسـتآلي اسـتخداد وظيفـة
يج ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــب ملي ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــك اس ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــتيراد moduleباس ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــتخداد وظيف ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــة االس ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــتيراد.
فالوظـ ــا ف التـ ــب ذارناهـ ــا سـ ــابقا هـ ــب جـ ــزء مـ ــق Pythonوال لـ ــزد اسـ ــتيرادها؛ فمـ ــثال وحـ ــدة
كالرياضــيات هــا واحــدة مــق أكثــر modulesالوحــدات الم ـراد اســتيرادها ؛ وفيمــا لــا معرفــة
كيفة استيراد مثل هذ .modules
- 98 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
فب حيق أن فإن استخداد math.floorللتقريب دا ًما إلا الرمم اصصغر ؛ ومق ثم
صحيح. مدد أمرب إلا لل تقريب built-in round function
يمكنك الحصول ملا ما مة بجمي الوظا ف فب وحدة الرياضيات باستخداد dir؛ اما
تضح فا النافذة التالية :
هناك طريقة أ رى لمماهدة الوثا ق وهب استخداد بيان __ __docم اشرة فب با ثون.
__print math.floor.__doc
يعنب المعلمة الوحيدة لهذ الوظيفة هب قيمة واحدة .تقود الدالة الصيغة ( floor (x
صحيحا (مثل .)7هذ المعلومات تسمح لك
ً مددا
ً بإرجاع مدد ممري (مثل )7.0لي
بتحد د ما إذا اانت الوظيفة حًقا ما ت حث منه وايفية استخدامها بمكل صحيح ؛هناك
- 99 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
مق ما مة startأ تار allprogramsومنها Arc GIS؛ منها Paython 2.7؛ ثم
paython manual
X1=5
Y1=1
X2=12
Y2=18
تعتبر البرمجة النصية طريقة لتنفيذ ممليات المعالجة الجغرافية ؛ ونصوص ال ا ثون تم ه
ال مق البرمجة المر ية فا
النمذجة ؛ إال أنه يختلف منه فا استخداد الكود بد ً
. ModelBuilder
افتح برنامج arc map؛ واستيراد الآل قات التا تم ممل معالجة جغرافية لها ؛ ومق شري
القوا م أ تار Geoprocessing؛ ثم Geoprocessing Options؛
ال مق Overwrite
تظهر النافذة التالية :؛ ض مالمة صح أماد ا ً
the outputs of geoprocessing operationsو results of
. " geoprocessing operations to the display
-استيراد " arcpyمق طريق اتابة import arcpy؛ والجد ر بالذار ان استيراد arcpy
لي ضرورًيا الستخداد المعالجة الجغرافية مق دا ل تلك النافذة .وم ذلك الكود فب
ال ا ثون يمكنه تحويل النافذة إلا ملف نصب ( )py.ونصوص مستقلة.
-بعد اتابة السآلر اصول مق التعليمات البرمجية ( )import arcpyاضغ ملا .Enter
موجها جد ًدا "<<< "فب السآلر التالب .فسبق وأن ذانا أن لغة با ثون لغة مفسرة
ً -يظهر
مما يعنب أنه فب نافذة با ثون تم تمغيل سآلر التعليمات البرمجية بمجرد الضغ ملا
.Enter
اآلن النافذة جاهز لتمغيل أداة المعالجة الجغرافية.
م مراماة مدد الضغ ملا Enterهذا الكود يستدمب أداة .Clipتذار أيضا أن لغة
حالة اصحرل هذ لذا تأكد مق اتابة Clip,بنف Pythonحساسة لحالة اصحرل
وليست تكتب هكذا . clip.
اما لو انت تمأل مرب حوار اصداة .وبمجرد اتابة موس فتح ( -تحد د معلمات اصداة
تنسدل ما مة تحتوى ملا جمي الآل قات الموجودة دا ل جدول محتويات بعد أداة Clip
. Arcmap
-أكمل الكود " أريد ممل clipلمد نة تال مق دا ل ط قة المراكز وأسما الآل قة الجد دة
" tala_clip؛ملا النحو التالا
-اضغ ملا Enterلتمغيل سآلر التعليمات البرمجية .فالوض مثله مثل تمغيل اصداة مق
لنجد النتيجة مآلبومة فب نافذة با ثون؛ وتم امتآلاع الآل قة دا ل مق ArcToolbox
وانسدالها دا ل منآلقة Table of Contentsملا النحو الموضح بالصورة التالية:
:Count Management
افتح أيقونة ال ا ثون مق نافذة الـ arcmap؛ومق ثم ال حث مق اصداة " count؛ تم سحب
اصداة ووضعها فا نافذة ال ا ثون " تم اتابة الكود "
وهناك طريقة أ رى وها أن نفتح اصداة ؛ ومق helpاصداة ؛ نجد الكود الذى استخدد
النماء اصداة ؛ اما موضح بالنافذة التالية:
بعد سحب اصداة فا النافذة ؛ نض الـ shabefileالمآللوب مد بياناته ؛ ونجد يعآلا لنا
مؤشر لال تيارات ؛
األختيار :Select
ا تار الآل قة المراد ممل selectلها؛ ولتكق مدن محافظة المنوفية ؛ بعد ذلك نختار
selectلها ولتكق مد نة TALA؛ نالحظ أن النافذة تمير لنا ملا المآللوب ممل
المآللوب إضافته اما موضح بالنافذة
بعد ذلك يآللب مننا Where_classلإلشارة إلا الـ classالمآللوب ؛ ويتم ذلك مق طريق
الآلريقة المكتوبة ؛ معرفة االسم مق دا ل attrupite tableليتم نقل االسم بنف
ونكمل باما الكود " م مراماة اتابة الكود والكومق بآلريقة صحيحة " ثم enter؛ فيقود
باصداة ؛ ومكان حفظ الآل قة الجد دة ؛ويخرج لنا الآل قة فا منآلقة Table of
.contentes
استخدام :Buffer
تم تمغيل أداة Bufferدا ل نافذة ال ا ثون وذلك ملا النحو التالا:
التالا( النحو ملا وهو اصداة اود يكتب ثم ؛ arcpy استيراد تم
( arcpy.Buffer_analysisودا ل اصمواس تم تحد د الآل قة المراد ممل Bufferلها
؛ ونسما الآل قة الجد دة والمسافة المآللوبة لعمل Bufferوذلك ملا النحو التالا :
:Select pyLocation
يعتبر اال تيار حسب الموم دا ل نافذة الـ arc mapأمر بسي جداً؛ لكق اآلن دمنا نقود
بهذ المهمة مق طريق اود ال ا ثون؛ فإذا أردنا أن نحدد موم معيق بناءًا ملا مسافة
محددة ؛ مثل " تحد د المستمفيات التا ت عد مق نهر النيل بمسافة 500متر مثال" ؛
الخآلوات التالية: فتمثل المستمفيات بآل قة نقاط ؛ والنهر بآل قة آلوط ؛ فنت
-نفتح اصمواس ونختار ط قة النقاط والتا تمثل المستمفيات ؛ ثم نختار المطيار الذى نحدد
بناء مليه . WITH A DISTANCE
-نحدد الآل قة الثانية " نهر النيل ؛ ثم نحدد المسافة 500متر .
-نسند الكود إلا متغير وليكق = point_ 500m؛ ويكون الكود ملا النحو الموضح فا
النافذة التالية ؛ ثم نضغ enter؛ فيقود باإل تيار بنجاح .
ونجد النقاط تم ا تيارها دا ل نافذة arcmap؛ وتم تحد دها دا ل .Attrabuite table
مند التعامل م نافذة IDELت ادر إلا أذهاننا التساؤل؛ ايف نرب الـ ـ IDELببرنامج
Arc Mapبعد اتابة اصكواد؟
نفتح IDEL؛ ونفتح نافذة جد دة ثم نستدما " "importمكت ة arcpyولرب الـ shape file
بالـ IDEL
-نضعه فا متغير وليكق ws؛ ثم نكتب الكود ملا النحو التالا = ws؛ نكتب rوننسخ
مسار الـ shape fileدا ل الجهاز ثم نض \ وننسخ أيضا اسم الـ shape fileونضعه
دا ل النافذة ؛ ثم shp.ونقفل الدبل اومق.
-بعد ذلك تم ممل اصدوات؛ ففا اصداة countوالتا سبق وأن نفذناها دا ل نافذة ال ا ثون
مق دا ل arcmap؛ نكتب
)r=arcpy.Getcount_management(ws
)Print (r
االختيار : select
بعد رب النافذة بالـ arcmapاما اتضح سابقا تم اتابة الكود ملا النحو التالا :
وتظهر على البرنامج ؛ حيث نذهب لمكان حفظها ويتم اضافتها لتظهر على النحو التالى
فتظهر نافذة واجهة اصداة؛ تسما اصداة ؛ ونض وصف لها و ثم نحدد
”foreground
نختار الملف ثم next؛ يظهر لنا مرب الحوار التالب والخاص بتحد د معلمات اصداة الم ارد
مرضها فب مرب حوار اصداة.
يمكنك تخآلب هذا اآلن صن ملف البرنامج النصب يحتوي ملا معلمات ذات ترميز ثابت
م امتداد برمجة Pythonلـ . ArcGIS
هذا يضيف أداة نصية إلا صندوق اصدوات .يمكنك اآلن تمغيل البرنامج النصب املف
أداة.
لو حاولنا تمغيل اصداة بالضغ دبل اليك مليها فنجد أن اصداة ال تحتوي ملا معلمات
النصب. البرنامج أداة إمداد مند شبء أي إنماء تم لم صنه
ومد الحظنا أن إنماء أداة نصية أمر سهل إلا حد ما؛ إال ان هناك الكثير مق اصمور
امداد ذلك فب بما موية نصية أدوات إنماء مند الهامة
والتحقق مق صحة معلمات اإلد ال معلمات اصداة للحصول ملا مد الت المستخدد
ومعالجة اص آلاء.
فيما لا توضيح لكيفية تحويل الـ scriptالذى تم إنماؤ فا الم حث السابق إلا أداة :
ونحفظ النافذة؛ ومق برنامج arcmapمق نافذة arccatalogنختار مكان إنماء اصداة ثم
كليك يميق newونختار newtoolbox
ثم next؛ فتظهر النافذة اصتية والتا تم ا تيار الوصف المحفوظ " اود اصداة الذى تم
كتابته ملا "IDEL
ملا nextتظهر النافذة التالية والخاصة بإضافة اصسئلة واالحتياجات الموجهة ونضغ
للمستخدد ؛ فأول احتياج إضافة الـ Layer؛ ثم نختار نوع البيانات الذى يقود بإد الها ؛
لتجميع أكثر من أداة فى scriptواحد ليتم تنفيذهم بمجرد عمل run؛ نختار مجموعة
من ادوات التحليل المكانى مثل ؛
-لد نا ط قتيق ط قة مضلعات لتمثل مراكز المحافظة وط قة نقاط موزمة ملا المراكز.
-ممل متغير " ws " work spaceللآل قة اصولا التا تم إد الها ملا النحو التالا
-بعد ذلك نعمل Bufferللمخرج مق أداة الـ " Selectفنكتب الكود ملا النحو التالا
ناتج العددملا ال ا ثون shell؛ وناتج اصدوات نجد فا مكان حفظه -تم ممل runفتآل
؛ فيتم إضافته ملا .arcmap
وبعد ذلك يمكن تجميع وصف هذه األدوات األربعة وإنشاء أداة واحدة تمكننا من عمل
وظائف األدوات السابقة ؛
تم ممل هذ اصدوات ملا هيئة متغير ونسميه اسم وليكق select country؛ نض هذا -
المتغير للـ NAME؛
' ؛ ملحوظة :وض اسم المتغير مكان TALAال تم م ار ته ملا انه متغير النه بيق '
ولحل هذ الممكلة تم وض أمواس ودا لها صفر } { 0؛نقود بكتابة جمي التعليمات اما
فا النافذة التالية:
يتم حفظ النافذة ؛ نقوم بعمل أداة جديدة بالخطوات السابق ذكرها ؛
نكتب clip_management؛ ثم نفتح اصمواس لند ل المتآلل ات وها الآل قة الـ raster؛
ثم ننسخ " extentناتج العملية السابقة و المسار الذى نحفظ فيه ناتج العملية وسبوق بـ
r؛ ثم ند ل ط قة الـ polygon؛ المراد القآل بها ؛
ملحوظة توض " " #مند مدد الرغ ة فب اد ال المتآلل ات Parameterاال تيارى (
)Optional؛ وإكمال ملا النحو الموضح بالنافذة ؛
ولطباعة extentللـpolygon
تم استيراد arcpy؛ ثم بعد ذلك وض المسار الذى تم فيه إ راج الآل قة الجد دة
output؛ م تسمية الآل قة ؛ وفا السآلر التالا نكتب العملية المآللوبة اما لا :
حيث يستخدد مسار الملف mxdلمعرفة مسار الخريآلة المعروضة لد نا؛ تعد نافذة ال ا ثون
فب arcmapمفيدة فب التعامل م الخريآلة التب تم مرضها دا ل نافذة الـ arc map؛
ويمكق اإلشارة إلا هذ الخريآلة المفتوحة باسم "."CURRENT
mxd.filepath
كلمة currentتعنب مم بقراءة الملف الحالب اما انه باإلمكان مراءة أي ملف mxdبكتابة
المسار موضا مق المة currentبيق مالمتب امت اس.
فنالحظ التغيير ملا الخريآلة ؛ وبالنس ة لعنوان الخريآلة يكتب mxd.title؛ ثم enter
يعرض لنا منوان الخريآلة الحالب ؛ فنعآلا منوان جد د للخريآلة وليكق =mxd.title
Egypt DEM؛ وبمجرد اتابة )( arcpy.RefreshActiveViewتم تغيير العنوان.
وللحفظ؛
كما يمكق تغيير صا صها بال ا ثون وذلك بتنفيذ الكود التالا = dfs
) arcpy.mapping.ListDataFrames(mxd؛ ثم اتابة التغيرات المآللوبة
كما يمكق التعامل م الآل قات مق الل نافذة ال ا ثون وذلك مق طريق استخداد اصكواد
التالية
أيضا تحد د مجمومة مق الميزات وتعييق مدى إطار البيانات ملا قيمة تم
كما يمكق ً
إرجامها بواسآلة )( getSelectedExtent
)(df.extent = myLayer.getExtent
Sympology
بينما ط قات الخريآلة التب تحتوي ملا أحد أنواع الرموز اصربعة اص رى تدمم الترميز.
لكق يمكق تعد ل نوع الترميز باستخداد ملف " "lyr.تم إنماؤ مس ًقا وذلك اما موضح أدنا
؛ لنجد الترميز تغير إلا Gradutated_Colors
اآلن يمكننا تعد ل صا ص ترميز اصلوان المتدرجة ؛ فيمكق التغيير فب الحقل الذى تم
الترميز له ملا النحو التالا
Layout
لظهور مناصر الخريآلة والتب تم إدراجها فب مرحلة layout؛ يكتب الكود التالا:
)'mxd=arcpy.mapping.MapDocument('current
)>>> elems=arcpy.mapping.ListLayoutElements(mxd
>>> for e in elems:
... print e.name
ومق بعد ذلك ممل تعد الت ملا اال منهما ملا حدى ؛ اما يمكق أيضا التعامل م ال
منصر اما موضح
كما يمكق نقل العنوان إلا وس الخريآلة باستخداد موض وأبعاد إطار البيانات الخاص
ملا النحو التالا:
الباب الثالث
مقدمة.
تعد لغة البرمجة Rمق اللغات المستحدثة ؛ حيث نمت بمكل سري فا مجال اإلحصاء
والمعلومات الحيوية ؛ ويزاد مدد مستخدميها وما مق ود .
مسم Ross Ilhakaر ي بدأت اللغة ملا د مالم اإلحصاء النيوزلندى روس إلهاكا
اإلحصاء بجامعة أوالند بيوزلندا والعالم الكندى رووبرت جينتلمان Robert Gentleman؛
مسم المعلومات وهو مالم إحصاء أيضًا متخصص فا المعلومات البيولوجية ؛ وهو ر ي
البيوجولية بنف الجام عة حيث اانوا يحاوالن إنماء منصة جد دة فا الحوس ة اإلحصا ية
وذلك ماد 1992م إصدار أولا ماد 1995واان أول إصدار مستقر للغة Rماد
2000؛ وتم تسمية اللغة بهذا االسم نس ة إلا الحرول اصولا مق العالميق ؛ وتم إمتماد
اللغة بسرمة بسبب أنها مفتوحة المصدر ؛وتتميز ه ذ اللغة مق غيرها مق برامج التحليل
اإلحصا ا SAS؛ SPSS؛ وأهم ما يميز هذه اللغة:
-لغة مفتوحة المصدر" يخض توزيعها لتر يص" "GLPوبالتالا سهولة الحصول مليها
واإلضافة والتآلوير مق مبل المستخدميق.
-لغة بسيآلة و مفسرة مثلها مثل ال ا ثون فسهلة القراءة والفهم .
-انها لغة تعتمد ملا اصوامر ؛ إال أنه يمكق تحويلها إلا صورة تم ه برنامج . SPSS
تتعدد استخدامات لغة R؛ فعلا سبيل المثال ال الحصر تستخدد فا المجاالت التالية -:
: Banking Sector -2لمعالجة البيانات التا تجمعها البنوك وشراات المال مق أجل
تحليل مخاطر اإل تمان ؛ ومليه تقرر شراات المال نسب الفوا د ؛ مثل البنك المرازى
اصمريكا ومجمومة ENZاستراليا ونيوزلندا المصرفية.
: Real Estate -3حيث تستخدد اللغة فا مجال العقارات لتحليل المعلومات التا تم جمعها
مق أجل التنبؤ بالمبيعات.
: Stock Market Exchange -4فا مجاالت البورصة للتنبؤ بارتفاع او انخفاض اصسهم.
-5التنبؤ بوقت الرحلة الفعلى أو التأ ير الذى يمكق أن تتعرض له الرحلة .
لف التغريدات -6مواقع التواصل اإلجتماعى؛ يعتمدوا ملا Rلتحليل االستنتاجات مق
لصالح بعض المنظمات .
تعتبر لغة Rاألفضل للتعامل مع التخصصات التالية :ملم اإلحصاء –– التعلم اصلا
Machine learning؛ تحليل البيانات الجغرافية .
/https://cran.r-project.org
وجد نسخ لجمي أنظمة التمغيل ؛ فال بد مق ا تيار النسخة التا تتوافق م جهازى ؛
ملا Install Rfor the first time؛ ستظهر صفحة لو اان التحميل أول مرة نضغ
التحميل ومتآلل ات ال نسخة ؛ النسخة اص يرة 4.0.2؛ ( 32؛ 64بت) .
تم تحميل البرنامج ؛ وبعد ذلك تصآلييه ملا الجهاز مملية بسيآلة ؛ مق طريق الضغ
ملا nextحتا االنتهاء مق التنصيب .
وهو البرنامج الذى يسمح لنا بمماهدة والعمل ملا برنامج R؛ فهو يعتبر واجهة له ؛
فيسهل ملينا اتابة الكود ؛ تم تحميله مق الموم
/https://rstudio.com
تظهر النافذة
ثم ا تيار النسخة التا تتوافق م متآلل ات الجهاز الخاص با .تم تنصيب البرنامج ؛ ثم
بعد ذلك تم فتح البرنامج فتظهر نافذة البرنامج اما تضح :
نوافذ البرنامج:
القسم األول " : "Consoleوهو القسم الخاص بتنفيذ االوامر ؛ اما يمكق اتابة الكود
المراد تمغيله .
القسم الثانى " : " Source Editorوهو محرر المصدر والذى تكتب فيه اصوامر
ويجرى التعد ل مليها ؛ اما يمكق حفظها لالستفادة منها بعد ؛ ويمكق أيضًا تنفيذ السآلر
مق الل الضغ ملا .Ctrl+ Enter
2
4
1
3
القسم الراب " : " Plots, Package and Helpوها المنآلقة الخاصة بعرض جمي
الملفات والرسود التا تم رسمها فا Plots؛ اما يمكق التنقل بيق الرسود وحفظها ؛
والمنآلقة أيضاص مخصصة للحزد ‘ فتحتوى ال Rملا العد د مق الحزد الجاهزة ؛ فيمكق
تحميل أى حزمة مق االنترنت وإجراء التعد الت مليها ؛ وتغآلا هذ الحزد جمي التحليالت
اإلحصا ية.
مق المهم معرفة مجمومة ا تصارات shortcutالموجودة ؛ ويمكق اإلطالع مليها مق
الل ؛
يمكق استخداد نافذة اصوامر " “ consoleكألة حاس ة ؛ ويسامد فا مملية الكتابة
وفا نافذة Source؛ حيث يمكق اتابة اكواد وحفظها مق الل Fileثم Save as؛ولو
ال ؛ فيفضل حفظه مق طريق Save with
وجد بالكود بالعربب مثل اتابة التعليق مث ً
. Encoding
وفا هذ النافذة يمكق أيضا تنفيذ اصوامر ؛ إما مق طريق Runأو ctrl+enterمق لوحة
المفاتيح .وفا نافذة الملفات والرسود والحزد ؛ حيث تم مرض جمي الملفات
والجد ر با لذار انه ال بد مق تحد د مسار لمنآلقة العمل الخاصة با ؛ حيث أنه إذا تم حفظ
أى ممل دون وض مسار له ؛ فيتم حفظه تلقا يًا فا المسار المحدد لمنآلقة العمل ؛ ويتم
تحد د ذلك مق الل more؛ ثم Set as working Directory
لعرض
الرسوم
وفا حالة الحاجة إلا packagesلم تكق موجودة ملا الجهاز فيتم تحميلها مق طريق :
لنشر Package
تعريف : Variables
يمكق وض مفهود م س للمتغير ؛ فهو ع ارة مق محفظة صغيرة " حاوية " تستخدد لحفظ
البيانات أثناء تمغيل البرنامج ؛ حيث وجد مدة أنواع مق هذ المحفظات ال نوع يستخدد
لحفظ نوع مق البيانات محدد.
( Duble or Numeric -الذى يحتوى ملا مدد صحيح ومدد ممري 10.5أو مدد
كسرى .)2/10
:Boolean Or Logical -المنآلقا وترج تسميتها إلا مالم الجبر جورج بول الذى
ا ترع المنآلق الرياضا أو الجبر المنآلقا ؛ والمتغير يأ ذ قيمتيق فق Trueو false
ويتم استخداد هذا النوع مق المتغيرات لإلشارة سواء اان هذا صحيح أد ال .
تطبيق :
نفتح برنامج R؛ تظهر نافذة البرنامج ؛ لحذل الصفحة ؛ إما مق الل l + ctrlمق
لوحة المفاتيح أو اليك يميق ملا النافذة وا تيار clear windowأو مق Editومنها
Clear Console
المتغير : Integer
برنامج Rيعتبر ال مدد صحيح مدد ممري ؛ فمثال الرمم 12مدد صحيح فلو تم اتابتها
12فق لم تعرل مليه ‘ فحتا تم تعرل البرنامج مليه بأنه رمم صحيح يكتب 12.00
typeof أو 12Lالرمم ويليه حرل " Lاابتل "؛للتعرل ملا نوع المتغير تكتب الدالة
)(.
:Duble or Numeric
:Character or string
يمكق تسمية المتغيرات بجمي اصحرل واصرماد والعالمات ولكق ال بد مق اال ذ فا
؛ ويمكق وض نقآلة مبل اإلمت ار الترتيب ؛ ففب التسمية اصولا نستخدد اصحرل فق
االسم ؛ اما يمكق استعمال _ ؛ أو استعمال اصرماد بدال مق اصسماء.
ال يقبل @ ؛ وال يمكق أن بدأ االسم برمم او بـ _ وال بنقآلة ليها رمم .
هب الكيانات التب ال يمكق تغييرها ؛ وهناك ثالثة أنواع ر يسة مق الثوابت وها الثوابت
رممية ؛ و الثوابت مق نوع Characterوالثوابت المدمجة . Built-in
وها إما أن تكون مق النوع " integerرمم صيح " 5Lأو " Doubleرمم ممرى " 5.5؛
الثوابت العقدية " "Complex 5iوأ ي ار 0xff – 0XF+1 "Hexadecimal numpers
".
وها نومان " "5وفا حالة وض الرمم 5بهذ الصورة فال يمكق إجراء أي ممليات
حسابية مليه .أو نص بيق "" مثل " ."GIS
العوامل هب رموز تخبر المترجم بإجراء ممليات محددة سواء حسابية أو منآلقية ؛ ويوجد
العد د مق العوامل المدمجة فب لغة Rمنها العوامل الحسابية Arithmetic operators
والعوامل المنآلقية Logical operators؛ والعوامل العال قية Relational operators
و موامل اإلحالة . Assignement operators
+Addition؛ الضرب هب العوامل التب تم استخدامها للعوامل الحسابية مثل الجم
*Multiplication؛ الآلرح – Subraction؛اصس ^ Exponent؛ القسمة / Division
% / % Integer Divisionأو المت قا مق القسمة القسمة الآلبيطية ؛ سواء
. %% Modulusوتتم مثل هذ العمليات دا ل لغة Rاما موضح :
هب العوامل التب تدل ملا مقارنات بيق القيم " ايفية ارت اط العناصر ب عضها ال عض "
< ؛ يساوى = ؛ال يساوى = ! ؛ أكبر مق او يساوى = وها أكبر مق < ؛أصغر مق
< ؛ أصغر مق أو يساوى => .
صحيح يعآلا TRUE وفا حالة ( orا ا) إذا اان أحد الآلرفيق فق
<- Leftwards assignement تم استخدامها لتعييق قيم المتغيرات ؛ وها نومان
و - > Rightwards assignement؛ وها أيضاً تم ه = فب التعامل م القيم.
تطبيق:
مم بتظليل السآلر بالماوس ثم اليك يميق وا تار Run Line or selection
R loops
الحلقات فب لغة : Rهب ع ارة مق سلسلة اإلرشادات التب تتكرر بإستمرار حتا الوصول
إلا حالة معينة ؛وهناك ثالثة أنواع وها :
تطبيق:
افتح برنامج S studio؛ وفا نافذة الـ Sourceنكتب Forوبمجرد اتابة forيقود
البرنامج بإمآلاء نافذة بترشيح الط ارات
i^2 Tabمق لوحة المفاتيح ؛ أكمل الكود ؛ لو iمق 2:9اط نقود بإ تيار الـ forثم
ملا النحو الموضح بالنافذة التالية :
3
4
5
6
7
8
9
9
تطبيق : 2
يحتوى المتجهة yملا العناصر التالية 2-1-4-5-9-8-7-3 :؛ فاحسب مدد اصرماد
الزوجية فب المتجهة باستخداد الحلقة . For
ثم بعد ذلك تهمير وممل run؛ فتظهر النتيجة بالنافذة ؛ حيث تم مد اصرماد الزوجية
وها 3
تآلبيق :3
تطبيق:
لدى مجمومة مق درجات الآلالب ؛ والمآللوب لو الدرجة أمل مق 10امآلا للآلالب fail
؛ ولو أكثر مق pass 10و لو الدرجة 13أمآليه good.؛ فيأتا هذا التآلبيق ليوضح
فإذا ط قنا الكود العادى تم التعامل م الجزء اصول مق الكود ؛ لنا أهمية الحلقة for
لكق فب forتم التكرار ملا ال جزء مق الكود وتآلبيقه اما موضح أدنا ؛
ملحوظة :مبل ممل runللكود تم أ تيار الكود اله ؛ وتظهر النتيجة ملا النحو التالا :
تم تقييم test expression؛ فإذا اان صحيح تم تآلبيق نص الحلقة ؛ ثم تم إمادة
التقييم حتا آلل تحققه ليخرج مق الحلقة .
- 162 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
تآلبيق:
فب ففب هذا التآلبيق الحلقة التك اررية تمترط فب حالة أن xأمل مق 10تم ط امة x
حيق أن xفب اصصل = 1؛ ويتم إضافة 1ال مرة x+1؛ فيتم تآلبيق النص حتا
تحقق شرط while؛ فيتم ط امة اصرماد حتا الرمم 9؛ " <مق ."10
تآلبيق :2
أكتب برنامج باستخداد if …elseوالحلقة التك اررية whileللحصول ملا مجموع اصمداد
الآلبيطية لعدد ما ؟
تم استخدامها لتكرار اتلة مق التعليمات البرمجية مدة مرات ؛ فال وجد فب Repeat
loopأي شرط للخروج مق الحلقة ؛ لذا فال بد أن نض بأنفسنا شرط صريح دا ل جسم
الحلقة للخروج منها وذلك باستخداد Breake statement؛ النه لو لم تم ممل ذلك
لها نهاية . يكون هناك حلقة لي
حيث يأتب Breake statementفإذا تحقق المرط الخاص به فيخرج مق الحلقة وإن
لم تحقق يستمر الا الحلقة مرة أ رى وهكذا.
- 164 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
تطبيق :
تم ممل Breakeبعد ط امة الرمم 1و 2النآل اق المرط ).if (val==3
تستخدد لتخآلا التكرار الحالب للحلقة دون إنها ها ؛ إذا تحقق المرط وبتآلبيق ذلك فب
المثال السابق نجد البرنامج تخآلا الرمم 3ليكمل الحلقة اما موضح أدنا :
Data Structureهو شكل منسق لتنظيم البيانات ومعالجاتها وتخزينها واسترجامها؛ حيث
يستخدد المكل المناسب المكانية استرجاع البيانات بالصورة المآللوبة .
النوع المتجهات هب ع ارة مق سلسلة مق مناصر البيانات أحادية اصبعاد ومق نف
اصساسا ؛ وأنواع البيانات التب تتفق م المتجهات هب
:Numeric-
تنماء المتجهات مادة باستخداد الدالة c؛ فمثال xمتجهة تحتوى ملا العناصر التالية
1و2و 3؛ فآلريقة إنماؤها اما لا " يمثل ال سآلر نوع مق البيانات السابق ذارها".
إنماء متجهات باستخداد الدالة seq؛ التب تمير إلا التسلسل ؛ حيث تم تحد د نقآلة
البداية والنهاية والمطيار الذى يحدد طول ال آلوة.
العنصر 8؛ فيتم ذلك مق طريق المؤشرات وهناك ثالثة ) X=c(1,5,8,9,3ونريد فق
أنواع مق المؤشرات هب . Logical – integer – character :
ملحوظة:
المتجهات التب تستعمل امؤشرات للوصول إلا مناصر متجهة أ رى تبدأ العدد مق 1
اللغات اص رى التب تبدأ العد مق صفر .اما يمكق استخداد اصرماد السال ة؛ ويمكق مك
استخداد المتجهة مكونة مق اصمداد الصحيحة فق للوصول الا المتجهة اصساسية ؛ اما
يجب مراماة مدد ل اصرماد الموج ة م اصرماد السال ة.
تم إرجاع العناصر التب تتفق موض المتجه المنآلقا TRUE؛ فب حيق
يمكق تعد ل " " Modifyأو بتر" " truncateمتجه باستخداد موامل اإلحالة وهناك طريقتيق
إما بإستخداد Integer vectorأو بإستخداد . Character vector
والجد ر بالذار أنه لعمل مسح أو إزالة لمتجه ما ؛ هناك طريقتان؛ إما أن نعآلا للمتجه
القيمة NULLوبهذا تص ح غير معرفة أو باستخداد ) )rmوها ا تصار لكلمة remove
وفا هذ الحالة تم مسح المتجه بعناصر ااملة.
تطبيق:
تطبيق :
البيانات " "dataوها المتجهات التب تمكل بيانات المصفوفة؛ وتكون ملا هيئة صفول
واممدة؛ لتكون الصفول هب العنصر الثانا واالممدة العنصر الثالث؛ ويأتب العنصر
المنآلقا العنصر الراب وأ ي ار منصر الـ dimnamesلوض أسماء اصممدة والصفول.
يمكق انماء مصفوفة ؛ ففب المثال التالب ؛يتم استخدام األرقام من 9: 1؛ويتم تحد د مدد
الصفول فق ؛( parameterاصول) ؛ والنتيجة مصفوفة تتكون مق ثالثة صفول وثالثة
أممدة ؛ فعلا الرغم مق أننا لم نحدد مدد اصممدة إال أن Rتوم مدد اصممدة بناء ملا
البيانات المد لة ومدد الصفول المحددة .
كما يمكن عمل مصفوفة عن طريق تحديد متجهيق ( ) x,yثم دمجهم إما دمجهم باستخداد
الدالة الخاصة باصممدة " "cbiand
فنجد أن أبعاد المصفوفة تختلف فب الحالتيق ففب الحالة اصولا 3صفول وممود ق والحالة
الثانية 3أممدة وصفيق.
كما يمكن عمل مصفوفة عن طريق إنماء متجهة معينة وتحد د أبعادها دويًا باستخداد
الدالة dim
فلد نا هذ المصفوفة
كما يمكق إزالة الصف أو أي ممود نريد ؛ففب المثال التالا نريد حذل الصف الثالث
القا مة هب تراي ة بيانات تحتوى ملا مكونات أنواع مختلفة مق البيانات؛ والـ Syntax
الخاص بالـ Listملا النحو التالا :
مثال:
: Data frameهب نوع مق أنواع الـ Listوها ع ارة مق مجمومة البيانات ؛ حيث
توافق ال صف م مالحظة مختلفة وال ممود م متغير محدد؛ وها ما مة تتكون مق
الآلول . متجهات مق نف
العامل :هو بنية بيانات تستخدد الحقول أو المتغيرات التب تتآللب إلا مدد محدد مس قًا
مق القيم ؛ والبيانات هنا تكون فئوية ؛ فيستخدد العامل لتصنيف البيانات وتخزينها فب
مستويات مختلفة ؛ اما تم استخدامه مندما يكون هناك العد د مق القيم المتكررة ؛ ويتضح
دور اما لا :
الدالة هب مجمومة مق الط ارات منظمة صداء مهمة محددة ؛ حيث تحتوى لغة Rملا
العد د مق الدوال باإلضافة إلا إمكانية إنماء المستخدد دوال اصة له .
الدالة المتكررة :وها الدالة التب تستدما نفسها وتعرل هذ التقنية باسم التكرار ؛ حيث
تم حل المساكل مق طريق تقسيمها إلا مماكل فرعية أصغر .
: Infix operatorsع ارة مق موامل تقود باستدماء دالة تعمل فب لفية البرنامج ؛
:Colockwiseقيمة منآلقية تمير إذا اانت الم ار ح مرسومة فب اتجا مقارب السامة أد
مقارب السامة . مك
تطبيق :1
وتستخدد الدوال السابق ذارها لوض منوان وتغيير اصلوان اما تضح
؛ حيث يكون لكل لون رمم محدد ؛ ويمكق ويمكق معرفة اصلوان المتوفرة دا ل البرنامج
استخداد الرمم بدال مق اللون :
كما يمكق تغيير اصلوان أيضا باستخداد الدالة rainbowحيث نحدد لها مدد اصلوان وها
تقود بتلويق المكل بقوس مزح.
تطبيق:
لرسم دا رة بتكرار رمم مدد تك اررات محددة ؛ فمثال تكرار الرمم 2؛ 24مرة ؛ تم ذلك ملا
النحو التالا :
لعمل مخآل دا رى ثالثا اصبعاد؛ تآللب ذلك تحميل الـ packagesالخاصة باالشكال
ثالثية اصبعاد ؛ وال بد أن يكون الجهاز متصل بم كة االنترنت ؛
فتظهر نافذة نضغ ملا ok؛ لتظهر نافذة أ رى نختار منها ؛ plotrixثم okلتحميل
packagesالخاصة بالدا رة ثالثية اصبعاد.
وبعد اصنتهاء مق التحميل نستدما المكت ة الخاصة بها وذلك مق طريق )library(plotrix
:Colاصلوان.
تآلبيق :
Horize=TRUE
يمثل ترددات القيم التب يحتوى مليها المتغير فب نآلاق محدد؛ ويم ه اصممدة ؛ لكق ال
شري فب الهستوجراد يمثل تردد مدد القيم الموجودة فب هذا النآلاق؛
المنحنيات :
هب رسود بيانية ترب بيق سلسلة مق النقاط؛ ويتم إنماؤ باستخداد الدالة plot؛ وال مق
.data-xlab-ylab-main-col-type
" "Cزيل النقاط ويترك مكانها فارغ ليص ح الخ غير متصل.
الباب الرابع
مقدمة
وذلك تضح مق مدى القدرات الجغرافية لـ Rبسهولة مق الحزد العد دة المدرجة فب مرض
ومعالجة البيانات المكانية.
استخدمت ال هذ الحزد لعمل افتراضات مختلفة حول ايفية تنظيم البيانات المكانية ولم
يكق لدى Rنفسها القدرة ملا تمييز اإلحداثيات مق اصرماد اص رى .باإلضافة إلا ذلك
كانت طرق رسم البيانات المكانية والمهاد اص رى م عثرة ومدمت افتراضات مختلفة حول
تنظيم البيانات إال أنها اانت بدا ية.
ماد 5مق مآلوري Rبكتابة حزمة spلتوسي Rم فئات البيانات المكانية حيث تحدد
كيفية تنظيم البيانات المكانية وتخزينها .ملا سبيل المثال مد توضح االحداثيات الجغرافية
وتوضح أي نظاد مرجعب لإلحداثيات تم استخدامه . لجمي فئات البيانات المكانية
التخزين والعرض :
نظر صن Rلغة مفتوح المصدر فهذا تيح اكتمال معنا ال بت وال با ت نمغل به
ًا
مآللوبا ويترك
ً البرنامج وم ذلك فمق دوامب سرور معظم المستخدميق أن ذلك غير
لمجمومة صغيرة فق مق المآلوريق والخبراء؛ ويعتمد المستخدد ملا حقيقة واحدة فق وها
أن العد د مق المستخدميق مد أروا أو ا تبروا أو استخدموا الكود مق مبل.
ملا الرغم مق أن أجهزة الكمبيوتر لد ها سعة ذاكرة أكبر مما اانت مليه مق مبل فقد ال
صن البيانات التب تم تحليلها تكون Rمناس ة لتحليل مجمومات البيانات الضخمة
ملا سبيل المثال مق صور محفوظة فب الذاكرة .مد تأتب مجمومات البيانات الضخمة
اصممار الصناعية فمق الضروري أن يكون لديك فكرة مق حجم البيانات وإدارة الذاكرة
ومتآلل اتها .إال أنه مق الممكق استخداد Rلتحليل جزء مق مجمومات البيانات أو ا تيار
منآلقة معينة ص ذ العينات الفرعية والتجمي أو التعميم للبيانات اصصلية .تُعرض البيانات
حيث ُيظهر المحاور اصساسية X,Yقيم اإلحداثيات . مادة ملا الخ ار
ً المكانية
مق بيق أموى الرسومات التب نعرفها منذ القدد .إال أن Rلم يصمم بمكل وبما أن الخ ار
ابير مق التصورات التب تتحول
مددا ًا
اما أن هناك ً وتحليلها اص لعرض الخ ار
ابير إلنجازها فب نظم
جهدا ًا
فب حيق أنها تتآللب ً بمكل طبيعب إلا رسومات R
المعلومات الجغرافية.
بعد ذلك نبدأ بإنماء ريآلة أساسية للعالم باستخداد حزمة ggplot2؛
بهذا تكون مرضت ريآلة م سآلة للعالم ؛ مستدماة مق مكت ة ggplot؛ مق طريق
استدماء البيانات ) ggplot (data=world؛
انتهاء السآلر البرمجب بـ +يعنا ان اصمر البرمجا لم نتها والسآلور التالية تابعة له؛
كما نستخدد دالة geom-sfوالتب تضيف ب ساطة هندسة المكل والتب تكون مخزنة فب
حزمة . sfوتسمية الخريآلة ؛ العنوان والعنوان الفرما باستخداد .ggtitle
ألوان الخريطة:
تسمح مكت ة ggplot2باستخداد أنظمة ألوان أكثر تعقيدًا ؛ حيث تسمح بالتدرج فب اصلوان
؛ وفيما لا مرض لتوزي السكان باستخداد المتغير pop_setحيث يخزن فيه الجذر
التربيعا لسكان العالم .
االحداثيات :
كما يمكق تعييق مدى الخريآلة فب تنسيق sfمما يسمح بالتكبير والتصغير ؛
كما يمكن إضافة أسماء البلدان إلى الخريطة وذلك باتباع األوامر التالية :
مومعيق للدراسة وفقا الحداثيات هذ المناطق ويتم تخزينهم فب data frame؛ ويكتب
الكود ملا النحو الموضح
ففب المثال التالا تم وض حدود الدول إداريا بخريآلة الواليات المتحدة ؛ تم استدماء
مكت ة mapوالخريآلة ورالصفول اصولب مق البيانات ؛
فتكون أسماء الدول جزء مق هذ البيانات والكمال إضافة الخريآلة م إضافة االحداثيات
ومليها اصسماء :
كما يمكق إضافة مستآليل لتحد د اصسماء امكل جمالا ولسهولة القراءة
وتكون بيانات المقاطعة مخزنة دا ل حزمة sf؛ ويتم اصضافة ملا النحو التالا :
هناك العد د مق المكت ات المفيدة فب هذا المجال؛ ومنهم " "rgdalو "raster؛ "
ثم نحددهم ونقود بعمل run؛ فيتم استدماؤهم دا ل نافذة consoleوتكون جاهزة
لالستخداد ؛ بعد ذلك نقود استدماء" مراءة " بيانات الـ GISوها ملا هيئة shapefile؛
وذلك اما موضح بالنافة أدنا وذلك مق الل اتابة
)"download.file("D:\shp\centers.shp
ولرسم الخريطة على نافذة الرسومات الموجودة بالـ Rstudioيتم عن طريق الدالة qtm
- 208 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
وفا حالة اتابة ) plot(menoufia_centers؛ تظهر أيضا الخريآلة وممثلة ملا النحو
االتالا:
(التصنيف ملا حقل المساحة والذى يسما Shape Areaفب جدول البيانات م
مراماة حالة اصحرل)
ويمكننا ا تيار طريقة التصنيف التب يجب استخدامها ومدد الفئات .حيث يمكننا استخداد
التصنيف الكما وا تيار مدد الفئات 4م وض المفتاح فب الراق اصيمق أسفل الخريآلة
وذلك ملا النحو التالا :
)plot(sityes$geometry
فنقود باستخداد plot geometry؛ ل اما الآل قات المآللوب استخدامها"حيث تم ممل
تقاط بيق ط قتا المدن والمراكز"
)plot(menoufia_centers$geometry
: نكتب
plot(menoufia_centers$geometry[int])
- 214 -
د /رشا صابر نوفل أسس الربجمة املكانية بلغىت البايثون و Rيف نظم املعلومات اجلغرافية
لعمل summryللبيانات
)plot(Buf$geometry
)library(raster
)library(rgdal
)library(rgeos
-بعد ذلك اتابة الكود التالا ؛ لقراءة البند الثانا ( ما بيق اصمواس مسار تواجد البند
ملا الجهاز)
)"b2<- raster("E:\LANDSAT\B2.TIF
)minValue(b2
ثم اتابة
)"Landsat= brick("E:\\LANDSAT\\B1.TIF
حساب :NDVI
واتابة الكود)dim(landsat
)Print (landsat
ولحساب NDVIفب الندسات 8نحتاج إلا Band4,5لنكمل اصكواد لتص ح ملا النحو
التالا:
حساب :NDWI
مكت ة raster
وبعد ذلك
ونكمل اصكواد
.2017 اإلصدار اصول ؛حلب ؛R ) حسق ؛ أرشد محيد ؛ لغة البرمجة اإلحصا ية1)
جامعة ديالا مسم- ؛ الية االدارة واالمتصاد.R ) زينة ؛ محمد بمر؛ البرمجة بلغة2(
. الآلب عة اصولا2019 االحصاء
- 225 -
رشا صابر نوفل/د يف نظم املعلومات اجلغرافيةR أسس الربجمة املكانية بلغىت البايثون و
:مواقع االنترنت
1- https://www.r-spatial.org/
2- https://mgimond.github.io/MEGUG2016/Tutorial.html
3- https://www.cisco.com/c/ar_eg/index.html.
4- https://www.udemy.com.
- 226 -
رشا صابر نوفل/د يف نظم املعلومات اجلغرافيةR أسس الربجمة املكانية بلغىت البايثون و
Spatial Modeling in GIS and R for Earth and Environmental Sciences Hamid Reza
Pourghas
- 227 -