استخدام البايثون في تحليل البيانات المكانية

نقوم  بهذه الدرس  بعمل مدخل للبايثون في معالجة البيانات الجغرافية  باستخدام بعض التعليمات الضرورية حيث سأقوم بعرض بعض النقاط  المهمة 

التعرف على بيئة الإدخال  بواسطة المتصفح جوبيتر
قراءة shapefile  ضمن البايثون

اظهار البيانات المخزنة  ضمن الطبقة ونمط البيانات   ورسم الطبقة

طريقة   اختيار عناصر من  الطبقة

ايجاد   تقاطع بين  طبقتين مختلفتين

تصنيف الطبقة   وفق سمة معينة

حفظ   الطبقة  علي جهاز الكمبيوتر خاصتك

تغيير نظام الإسقاط  للطبقة

رسم طبقات  مختلفة معا 

Anaconda

وهي منصة  علمية جاهزة وقابلة للتطوير تعمل لتسهيل مشاركة البيانات مع الآخرين   وتسهل ادارة البيانات واستخدام المكتبات المختلفة  وتوفر بيئة عمل متكاملة لأي مشروع برمجي وتعمل مع  جميع بيئات التشغيل
المختلفة
 حيث  سيتم استخدام المتصفح  جوبيتر وهو تطبيق مفتوح المصدر يتيح   تحرير وتشغيل الكودات البرمجية عبر متصفح الانترنت الخاص بك  ويعطيك قدرت تحكم عالية في كتابة كودك البرمجي حيث هناك سهولة في
الإدخال والتعديل  والعرض وغيرها الكثير من الميزات
تحميل انكوندا

Geopandas

 الحزمة  geopandas  هي حزمة مفتوحة المصدر  للتعامل مع البيانات الجيومكانية  وهي تعتبر توسيع للحزمة pandas

لتستطيع  التعامل مع البيانات الجغرافية   وهي تعتمد على بعض المكتبات الأخرى  مثل matplotlib , fiona

Fiona  تمكن البايثون من  قراءة بيانات نظام المعلومات الجغرافية الطبقات  وانظمة الإسقاط وتتوافق مع كل المكتبات التي يستخدمها البايثون لنظام المعلومات الجغرافية  

قم   بإضافة الحزمة  geopandas من   خلال كتابة الأمر التالي   ضمن anaconda prompt

conda install -c conda-forge geopandas 

نقوم بفتح انكوندا  فتظهر الواجهة البرمجية  كما في الصورة بالاسفل ومن  ثم نقوم بفتح جوبيتر لادخال الكود البرمجي

الكود البرمجي

نقوم   بايضافة   الحزمة Geopandas  ونكتب الامر pd.options.display.max_rows=10 لإظهار عشرة أسطر من الجدول اثناء عرض البيانات الجيومكانية على شكل جداول   

import geopandas  as gpd 
pd.options.display.max_rows=10


نقوم بتحميل طبقة  المدن الهامة في العالم وطبقة  دول العالم اضغط هنا
ونقوم بتحميل الطبقات

تحميل طبقة ضمن البايثون


#تحميل الطبقات 
Martin =gpd.read_file('C:\\Users\\marte\\Downloads\\Compressed\\ne_10m_admin_0_countries_2\\ne_10m_admin_0_countries.shp')
City=gpd.read_file('C:\\Users\\marte\\Downloads\\Compressed\\ne_10m_populated_places\\ne_10m_populated_places.shp')

رسم الطبقة

تتيح   المكتبة  geopandas استخدام   matplotlib لصنع الخرائط  والاخراج بواسطة التعليمة  Polt

#  رسم طبقة 
Martin.plot()
City.plot()

اختيار عناصر من الطبقة

نقوم   باختيار دول شمال أفريقيا  ودول الشرق الاوسط ,كذلك سوريا والمغرب  الامثلة التالية تبين الاختيار بطرق مختلفة

#   اختيار عنصر من طبقة    
arab_country=Martin[Martin['REGION_WB']=='Middle East & North Africa']

Syria=Martin[Martin['ADMIN']=='Syria']

maroco=countries[countries['NAME_NL'].str.contains('Marokko')]

maroco.plot()
arab_country.plot()

عرض بيانات الطبقة ونمط البيانات

عن طريق التعليمة head  
نحصل على جدول  يحتوي على معلومات الطبقة بالإضافة إلى عمود للعناصر الجيومترية



City.head()


نحصل علي نمط البيانات من خلال التعليمة type



North_Africa.type
arab_country.type


لاختيار عواميد محدد من الطبقة   
حيث سأقوم  بعمل طبقة تحتوي علي الاسم  والقيم الهندسية


# اختيار   عواميد محددة  من  الحدول 
countries = arab_country[['geometry', 'NAME_NL']]
countries

التقاطع بين طبقتين

نقوم  باختيار المدن العربية التي تقع بالشرق الاوسط  وشمال افريقيا باستخدام التعليمة sjoin

#   اختيار  النقاط التي تقع ضمن المضلع 

arabcity=gpd.sjoin(City,arab_country,op='within')

#cities_with_country = geopandas.sjoin(cities, countries, how="inner", op='intersects')

تصنيف الطبقة وفق لسمة معينة

نقوم    بتصنيف الطبقة   وفق ل عمود معين من الصفات  ونستطيع التحكم بالألوان المستخدمة  واضافة دليل للتصنيف وعدد التصنيفات  والتحكم بالألوان والعرض في المثال التالي سأقوم فقط  بتصنيف الدول حسب الاسم لتظهر كل دولة بلون مختلف

 
#تصنيف  الطبقة وفق  عمود  محدد
arab_country.plot(column='ADMIN', figsize=(11,11))
 

تحويل نظام الاسقاط

نقوم باظهار العناصر الجيومترية لمدينة دمشق وهي عبارة عن الاحداثيات

Damascus=arabcity[arabcity['NAME_left']=='Damascus']
Damascus.geometry
area
0.0    POINT (36.29805003041707 33.50197985420613)
Name: geometry, dtype: object

نقوم   بتحويل طبقة   المدن العربية  إلى نظام الإسقاط  ميركاتور باستخدام الامر{ ‘crs = {‘init’ :’epsg:3857


arabcity.crs = {'init' :'epsg:3857'}
arabcity.crs
 

اعادة تسمية عمود السمات ضمن الطبقة

نقوم بإعادة تسمية العمود NAME_NL’   إلى الاسم Martin

#  اعادة  تسمية احد عواميد   الطبقة 
countries2 = countries.rename(columns={'NAME_NL':'martin'})
countries2.head()

حفظ الطبقة

نقوم بحفظ طبقة  المدن العربية على  شكل ملف json ضمن ال directory   


# حفظ طبقة 
arabcity.to_file('utput.json')

نقوم    بكتابة pwd    لمعرفة مسار الحفظ

رسم الطبقات معا

نقوم برسم  طبقة المدن وطبقة الدول العربية  معا ونقوم برسم المدن باللون الاحمر والبلدان باللون الاسود والتعبئة بلا لون ونقوم بضبط الامتداد  من خلال ax.set(xlim=(-16,65),ylim=(10,45))

#رسم عدة طبقات  معا 
ax=arab_country.plot(edgecolor='k',facecolor='none',figsize=(13,13))
arabcity.plot(ax=ax,color='red')
ax.set(xlim=(-16,65),ylim=(10,45))

في دروس لاحقة سيتم تنفيذ مشاريع كاملة باستخدام البايثون

كاتب المقال Martin Ealya

توسيع برنامج ArcGIS برمجيا – ComboBox and Histogram

في هذا الدرس ستتعلم:

  • كيفية إضافة ComboBox ضمن toolbar في ArcGIS، وكيفية برمجة ComboBox.
  • إنشاء مخطط تواتر Histogram وتخزينه عن طريق مكتبة MatPlotLib في Python.

في هذا الدرس سنقوم بإضافة قائمتين منسدلتين ComboBox إحداهما لاختيار متابعة القراءة “توسيع برنامج ArcGIS برمجيا – ComboBox and Histogram”

توسيع برنامج ArcGIS برمجيا بواسطة Arcpy

في هذا الدرس ستتعلم:

  • إضافة خصائص Python API في برنامج ArcGIS .
  • كيفية إضافة toolbar في ArcGIS وإضافة أزرار يمكن برمجتها في الـ toolbar.
  • كيفية تصدير البيانات إلى اكسل عن طريق تصميم زر مخصص مبرمج بواسطة ArcPy.

تتيح إضافة Python API تعديل واجهة المستخدم في برنامج ArcMap، هذه الإضافة تسمح للمستخدم بإضافة تطبيقات يمكن برمجتها باستخدام لغة البرمجة Python على شكل أزرار يمكن وضعها في قوائم وشرائط أدوات متابعة القراءة “توسيع برنامج ArcGIS برمجيا بواسطة Arcpy”

تعلم البرمجة في برنامج ArcGIS – الدرس الثاني

الدرس الثاني:

في هذا الدرس ستتعلم:

  • استخدام arcpy خارج بيئة ArcGIS، من تطبيق IDLE الخاص ب Python27
  • قراءة البيانات الوصفية attribute
  • انشاء حلقات for بالاعتماد على البيانات الوصفية.

بإمكانك استخدام arcpy لجميع المهام التي تستطيع إنجازها في ArcGIS Desktop، لكن ما يميز استخدام arcpy عن انشاء toolbox في برنامج ArcGIS هو إمكانية تكرار الأوامر بشكل آلي It متابعة القراءة “تعلم البرمجة في برنامج ArcGIS – الدرس الثاني”

تعلم البرمجة في برنامج ArcGIS – الدرس الأول

في هذا الدرس ستتعلم

  • استخدام بايثون من داخل برنامج ArcGIS
  • اختيار Layer موجودة ضمن ملف mxd
  • إنشاء Layer جديدة حسب معيار معين.
  • أوامر الـخاصة بقائمة الـ geoprocessing مثل Merge، Dissolve، clip، buffer.
  • اجراء عملية اختيار بناء على البيانات الوصفية Selection by attributes.

متابعة القراءة “تعلم البرمجة في برنامج ArcGIS – الدرس الأول”

اظهار خطوط كنتور فني Tanaka.

كنت أقرأ هذه المقالة (الرابط) عن اظهار Tanaka (الرابط) لخطوط الكنتور. هذا الإظهار يعطي مظهرا فنيا للخرائط الطبوغرافية وذلك عبر استخدام وهم الظل على الخطوط

متابعة القراءة “اظهار خطوط كنتور فني Tanaka.”

اطلاق نموذج مكاني معياري -DGGS- جديد من المتوقع أن يسهل ويوحد تبادل البيانات المكانية على مستوى الكوكب

كخبراء نظم معلومات جغرافية نحتاج في الكثير من الأحيان إلى القيام بتحليل على مستوى واسع كالمدن مثلا. أحد المشاكل العملية التي نصتدم بها عادة هي توفير البيانات. أولا قد لا تتوفر البيانات المناسبة للمدينة بشكل مفتوح . وغير ذلك عليك البحث عن معلومات عن الطريقة التي تمت نمذجة البيانات بها ونوع المعلومات المخزنة. حيث أن كل هيئة حكومية أو شركة ترى العالم بشكل خاص وبالتالي تنتج بيانات من نوع خاص. وبالتالي قد تكون البيانات المتوفرة غير متوافقة مع خوارزميات التحليل الذي تريد أن تقوم به. تخيل الان أنك تريد أن تجمع معلومات لتدرس ظاهرة بين عدة مدن أو بين الدول أو حتى على مستوى كوكب الأرض.

البيانات المعيارية المكانية Geo Standards

لمواجهة هذه المشكلة تم تطوير فكرة نماذج البيانات المعيارية أو Standards والتي تلعب أهمية كبيرة في توحيد طريقة تخزين البيانات توزيعها وتبادلها وتوحيد خوارزميات التحليل المكاني. هنالك عدة هيئات تعمل على انتاج هذه النماذج ومن أهمها OGC والتي هي اختصار لـ Open Geospatial Consortium أو الجمعية الجغرافية المكانية المفتوحة. وهي أهم جمعية للبيانات المفتوحة في العالم. يمكنك زيارة الموقع هنا.

الخبر:

أعلنت الـ OGC يوم الثلاثاء الماضي عن اطلاق نموذج مكاني جديد بإسم Discrete Global Grid System DGGS من المتوقع أن يغير طريقة تبادل البيانات على مستوى الكوكب.

Earth

النموذج:

1-  إطار للإستعاضة عن نظم الاسقاط التقليدية على مستوى الكوكب وذلك عن طريق تقسيمه الى شبكة من المضلعات و تقسيم كل منها الى مضلعات أصغر.
2- إطار لتطبيق الخوارزميات على البيانات التي تكون مرجعة بالنظام الجديد

أهميته

الفائدة من هذا النموذج تناغم تجميع وتبادل البيانات الصورية والشعاعية والغمامات النقطية Vector – Raster and Point Clouds. والغاء التقسيمات التقليدية بين الـ Vector and Raster أي بين البيانات الصورية والشعاعية. واختصار التعقيدات التي تنتج عن نظم الاسقاط التقليدية. يمكن دمج الظواهر الاجتماعية والاقتصادية بالبيانات المكانية. حيث يمكن اختيار الأجزاء المهمة لنا والتي قد تكون متوزعة على مناطق كبيرة. وسيصبح DGGS النظام الأساسي عند دراسة ظواهر على مستوى كبير بالإضافة الى البيانات الكبيرة.

النموذج المعياري:

يمكنك الحصول على نسخة عن الوثيقة التي تصفه هنا. سأحاول تلخيص المهم منها في قريبا. لذلك لاتنسى الاشتراك بالموقع. والاعجاب بصفحة الفيسبوك That GIS Guy – نظم المعلومات الجغرافية ومشاركة  هذه المقالة مع أصدقائك المختصين. وفي حال لديك أي تعليقات أو أسئلة لاتتردد حيث أنك تفيدنا في تحسين المقالات.

الكاتب: أمجد عجوب

ماجستير في علوم الجيوديزيا ونظم المعلومات الجغرافية

مصدر الخبر

استخدام الطائرات من دون طيار في  رسم الخرائط في نظم المعلومات الجغرافية

ماذا نقصد بالطائرات من دون طيار (Drones أو Unmanned Aerial Vehicles : UAV )

أول ما يتبادر للذهن عند ذكر ” الطائرات من دون طيار ” هو صور عن قنابل وصواريخ تطلقها هذه الطائرات في الحروب على القوات المعادية ,لكن الذي نقصده من هذا المصطلح في هذه المقالة هو الطائرات الصغيرة التي يتم استخدامها لأغراض سلمية والتي يمكن ان يشتريها ويستخدمها أي شخص.

 تم التقاط الصورة في Intergeo والاستخدام لاغراض توضيحة فقط

20170927_122209

مجالات استخدام هذه الطائرات متعددة منها صناعة الافلام ,الاستطلاع للتنقيب عن النفط والغاز,حتى مراقبة الطقس, لكن الذي يهمنا فعلاً هو استخدامها في مجال رسم الخرائط وجمع البيانات من أجل تطبيقات نظم المعلومات الجغرافية (GIS).

كيف تساعدنا هذه الطائرات في رسم خرائط الـ GIS ؟

تقدم هذه الطائرات العديد من الميزات أهمها:

توفير الوقت :

كمثال على ذلك يقوم المساحون بأعمال أرضية بشكل يومي للحصول على معلومات عن موقع المشروع المراد تنفيذه أو عن المشروع المنفذ للحصول في النهاية على خرائط ثنائية البعد . هذا النمط التقليدي في المسح قد يتطلب أسابيع أو حتى شهور من العمل والمتابعة على أرض الواقع . هذه المدة يمكن اختصارها إلى الثلث باستخدام هذه الطائرات والتي تستطيع تصوير مساحات مثلا 180 هكتار. وعلى ارتفاعات تتراوح عادة بين 30 متر حتى 300 متر (تختلف حسب نوع الطائرة ).

التكلفة الزهيدة:

إن تكلفة التصوير بهذه الطائرات هي أقل بكثير من التصوير بالهيلوكوبتر أو الطائرات العادية التي يقودها طيار حيث يمكن أن تصل التكلفة إلى أقل من الربع و تكلفة شراء طائرة ذات جودة عالية مع كاميرا لا يتجاوز بضعة مئات من الدولارات.

الدقة:

عند التحدث عن رسم الخرائط أو النمذجة الثلاثية البعد فإن أكثر ما يهمنا هو مدى دقتها.

هناك نوعان من الدقة ( الدقة النسبية والدقة المطلقة)

يقصد بالدقة النسبية (المحلية)

دقة تموضع نقطة ما على الخريطة نسبة لنقطة أخرى, بمعنى آخر اذا كانت المسافة بين نقطتين 5 مترعلى الواقع فإنها تكون 5 متر ايضاً على الخريطة.

وإن الدقة النسبية المتوقعة من هذه التقنية للتصوير و جمع البيانات هي :

1. الدقة النسبية الافقية : وتساوي ضعفي مسافة التمثيل الأرضية GSD, فإذا كانت ال GSD تساوي 2 cm للبيكسل فالدقة النسبية الافقية تساوي 4 cm .

 (مسافة التمثيل الأرضية Ground Sampling Distance) :ويقصد بها المسافة في الواقع التي يمثلها البيكسل الواحد في الصورة.

2. الدقة النسبية الارتفاعية : وتساوي ثلاثة أضعاف الـ GSD .

يقصد بالدقة المطلقة

مدى تطابق نقطة على الخريطة مع نظام إحداثيات ثابت في الواقع, فإذا كانت الخريطة ذات دقة مطلقة عالية فإن إحداثياتها على هذه الخريطة ستتطابق إلى حد كبير مع إحداثياتها الفعلية المقاسة بالـ GPS .

تجدر الملاحظ أن هذه أمثلة عن الدقة التي يمكن الحصول عليها باستعمال طائرة من دون طيار عادية. حيث أن الدقة هنا تعتمد بشكل كبير على نوع الطائرة المستخدمة ونوعية البيانات التي تم جمعها, فبإمكاننا استخدام الطائرات هذه لصنع خرائط ذات دقة سنتيمترية (كالطائرات التي تشمل على مخمد للاهتزازات و GPS تفاضلي)

تعدد أنماط البيانات المجمعة:

تختلف أنواع البيانات التي تقدمها هذه التقنية بحسب الأجهزة التي نحملها بها, فكاميرات التصوير عالية الدقة تعطينا الصور الرقمية وأجهزة LiDAR تعطينا الغيوم النقطية الثلاثية البعد ( 3D Point Clouds ) والتي بدمجها معاً نحصل على النمذجة الواقعية ( 3D reality modeling ) بالاضافة للصور الحرارية من كاميرا خاصة بهذا الغرض.

السهولة في الاستخدام وإمكانية الوصول للأماكن الخطرة :

تساعد تقنية الـ GPS الموجودة في هذه الطائرات على التحكم بها بشكل أسهل, فبقليل من التدريب واستخدام التحكم التوماتيكي قد لا نحتاج إلى خبير لتسيير هذه الطائرات أو اللحاق بها لنر إن كانت على المسار الصحيح, نستطيع رسم مخطط الطيران على برنامج الكمبيوتر أو الهاتف الذكي لتقوم هي بباقي العمل. كما تمتاز هذه التقنية بإمكانية الوصول للأماكن الخطرة ( الجروف الصخرية, المناطق النشطة بركانياً,محطات التوتر العالي) من دون أي خطر على المستخدم.

للاطلاع على المزيد من أجهزة المساحة الغريبة انظر الى هذه المقالة: خمس أجهزة ستحبون العمل عليها بالتأكيد. المستقبل الان في INTERGEOلاتنسى الاشتراك في صفحة الفيسبوك  That GIS Guy – نظم المعلومات الجغرافية ومشاركة  هذه المقالة مع أصدقائك المختصين. وفي حال لديك أي تعليقات أو أسئلة لاتتردد حيث أنك تفيدنا في تحسين المقالات.

الكاتب: المهندس نوار نخلي