شعار زيفيرنت

بناء خريطة طبوغرافية لنيبال باستخدام بايثون

التاريخ:

المُقدّمة

هل تساءلت يومًا كيف تؤثر تضاريس بلدك على التنمية الاقتصادية والسياسية؟ يمكن أن تساعد الخرائط الطبوغرافية - خرائط سطح الأرض التي تستخدم الخطوط الكنتورية للتصور - في الإجابة على هذه الأسئلة! سنستخدم بايثون لإنشاء خريطة طبوغرافية لنيبال ، وهي دولة ذات بيئة طوبوغرافية مثيرة للاهتمام. سوف تتعلم كيفية قراءة البيانات الجغرافية المكانية التي تصف تضاريس بلد ما ، وكيفية تفسير هذه البيانات ، وكيفية تصورها. يمكن دمج الخريطة الناتجة مع البيانات الأخرى ذات الأهمية على المستويات الفرعية المصنفة للغاية لفهم كيفية تأثير تضاريس بلد ما على التنمية الاقتصادية و / أو السياسية. سيعلمك منشور المدونة هذا كيفية إنشاء أداة مثيرة للاهتمام حقًا يمكنها إبلاغ السياسات وتطوير القطاع الخاص!

أهداف التعلم

  • اكتساب الكفاءة في تقنيات تحليل البيانات لبيانات الارتفاع الرقمية.
  • تعرف على كيفية استخدام البيانات الجغرافية المكانية وأدوات التحليل ذات الصلة في Python.
  • اكتساب المعرفة بتقنيات رسم الخرائط.
  • تطوير المهارات في تصور البيانات الفعال للاتصال.
  • فهم أهمية رفع مستوى عدم المساواة والفقر.

تم نشر هذه المقالة كجزء من مدونة علوم البيانات.

جدول المحتويات

ما هي الخرائط الطبوغرافية؟

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

بيانات الوصف

لإنشاء خريطتنا ، سنعتمد على البيانات المنشورة بواسطة المسح الجيولوجي للولايات المتحدة (USGS). USGS هي وكالة علمية تابعة للحكومة الفيدرالية للولايات المتحدة تقوم بإنشاء بيانات وأبحاث حول الموارد الطبيعية والجيولوجيا والجغرافيا والموارد المائية والمخاطر الطبيعية. للوصول إلى صفحة البيانات، اكتب "USGS Data" في Google أو انقر على الرابط الذي يوجهك إلى Earth Explorer. Earth Explorer عبارة عن أداة عبر الإنترنت وبوابة بيانات تتيح لك البحث عن مجموعة كبيرة من بيانات علوم الأرض والوصول إليها وتنزيلها. يجب عليك إنشاء حساب وتسجيل الدخول لاستخدام البيانات بشكل كامل.

تنزيل البيانات

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

تحقيقا لهذه الغاية ، سنقوم بفلترة لنيبال في معايير البحث، كما هو مبين في الصورة أدناه. بمجرد اختيار نيبال ، اخترنا مجموعة البيانات التي تهمنا. للقيام بذلك ، انقر فوق مجموعات البيانات علامة التبويب واختيار الارتفاع الرقمي. هناك العديد من الخيارات لبيانات الارتفاع الرقمي ، وبينما يمكنك استخدام العديد من مجموعات البيانات هذه ، سنستخدم بيانات ارتفاع التضاريس العالمية متعددة الدقة 2010 جرينتش GMTED2010 بيانات. توفر هذه البيانات تغطية عالمية لتضاريس الأرض بدقة متعددة (تتراوح من 7.5 ثانية قوسية (حوالي 250 مترًا) إلى 30 ثانية قوسية (حوالي كيلومتر واحد)). يتم إنشاؤه من بيانات الاستشعار عن بعد المحمولة جواً والمحمولة جواً ، بما في ذلك قياس الارتفاع عبر الأقمار الصناعية والصور المجسمة والخرائط الطبوغرافية.

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

الخريطة الطبوغرافية | بايثون

توفر Python عدة أدوات للتحليل الجغرافي المكاني. في منشور المدونة هذا ، نعتمد على راستريو مكتبة تجعل من الممكن قراءة وكتابة البيانات النقطية الجغرافية المكانية (بيانات شبكية). لنبدأ ونقرأ أول فسيفساء (جزء) من البيانات التي قمنا بتنزيلها مسبقًا في دفتر Jupyter الخاص بنا:

#import relevant libraries (after installing them)
import rasterio
import matplotlib.pyplot as plt
import numpy as np #Read the data and show the shape of the dataset
file = rasterio.open(r'path10n060e_20101117_gmted_mea075.tif')
dataset = file.read()
print(dataset.shape)

لنقم أيضًا بتحميل الفسيفساء الثانية ودمجها بدمجها. تحقيقًا لهذه الغاية ، نتبع تقنيات قراءة البيانات النقطية القياسية ومعالجتها في Python على النحو التالي:

#Upload second dataset and show the shape of the dataset
file2 = rasterio.open(r'path30n060e_20101117_gmted_mea075.tif')
dataset2 = file2.read()
print(dataset2.shape) #Combine both datasets
from rasterio.merge import merge
from rasterio.plot import show #Create empty list
src_files_to_mosaic = [] #Append the list with both files
src_files_to_mosaic.append(file)
src_files_to_mosaic.append(file2)
src_files_to_mosaic #Merge both files
mosaic, out_trans = merge(src_files_to_mosaic) # Copy Metadata
output_meta = file.meta.copy() #Update Metadata
output_meta.update( {"driver": "GTiff", "height": mosaic.shape[1], "width": mosaic.shape[2], "transform": out_trans, }
) #Write to destination
# Write the mosaic raster to disk
out_fp = r"pathNepal_Mosaic.tif" with rasterio.open(out_fp, "w", **output_meta) as dest: dest.write(mosaic) #Open the combined raster data
file_mosaic = rasterio.open(out_fp) #Read the data
dataset_mosaic = file_mosaic.read()
print(file_mosaic.shape) #Show the data
plt.imshow(dataset_mosaic[0], cmap='Spectral')
plt.show()
الخريطة الطبوغرافية | بايثون

بيانات ارتفاع التضاريس العالمية متعددة الدقة

لدينا الآن بيانات مجمعة عالمية لارتفاع التضاريس متعددة الدقة لعام 2010 جرينتش GMTED2010 بيانات لجميع نيبال ، لكن الملف يغطي أيضًا أجزاء كبيرة من المنطقة المحيطة التي ليست جزءًا من نيبال. دعونا نقصر المنطقة على نيبال باستخدام ملف أشكال من نيبال. سنستخدم ملفًا بأشكال ذات حدود دولة للعالم. يمكنك تنزيل مجموعة البيانات هذه هنا. دعنا بعد ذلك نقطع البيانات النقطية وملف الأشكال باستخدام قناع وظيفة. سنستخدم فقط الصف الأول من ملف الأشكال وعمود الهندسة. يتم تخزين نتيجة هذه العملية في clipped_array، وهي البيانات النقطية المقطوعة ، و clipped_transform، والتي تمثل معلومات التحويل الخاصة بالمسح المقطوع.

import geopandas as gpd
from shapely.geometry import mapping
from rasterio import mask as msk#import csv #Upload shapefile with country boarders of the world
df = gpd.read_file(r'path/world-administrative-boundaries.shp') #Restrict to Nepal
nepal = df.loc[df.name=="Nepal"]
nepal.head() #Clip data
clipped_array, clipped_transform = msk.mask(file_mosaic, [mapping(nepal.iloc[0].geometry)], crop=True) #

هناك مشكلة واحدة متبقية. ال أي تاريخ القيم في البيانات النقطية ضارة للغاية. لذلك ، من شأنه أن يشوه تصور خريطتنا ، لأن هذه تشكل جزءًا من نطاق القيمة.

افهم المشكلة

دعنا نتعامل مع هذه المشكلة على النحو التالي ، كما هو موضح في هذا بلوق وظيفة:

  • لنقم ببناء دالة تعتني بها أي تاريخ قيم. نحن نبني لايوجد بيانات معلمة لتحديد القيمة المعتبرة "لا توجد بيانات" في المصفوفة المقطوعة. في هذه الحالة ، يتم ضبطها على (np.amax (clipped_array [0]) + 1) ، مما يعني أنها تساوي القيمة القصوى في المصفوفة المقطوعة زائد واحد. سيتم اعتبار هذه القيمة كقيمة "لا توجد بيانات".
  • اضبط المصفوفة المقطوعة بإضافة القيمة المطلقة للحد الأدنى للقيمة في المصفوفة المقطوعة إلى النطاق الأول (الفهرس 0) للمصفوفة المقطوعة. تضمن هذه الخطوة أن تصبح جميع القيم في المصفوفة المقطوعة غير سالبة.
  • نحسب أيضًا نطاق قيمة المصفوفة المقطوعة. يضيف القيمة القصوى والمطلقة للحد الأدنى للقيمة في المصفوفة المقطوعة. ال مدى القيمة المتغير سيحتفظ بنطاق القيمة المحسوبة.
  • استخدم قاموسًا لقيمة اللون تم إنشاؤه يدويًا استنادًا إلى قاموس موجود (ملف زلزالي واحد) وحدد لون الخلفية لقيم "لا توجد بيانات".
  • في الخطوة الأخيرة ، قمنا برسم الخريطة بنطاق الألوان الجديد المسمى new_seismic.
#Let's investigate no data values nodata_value = file_mosaic.nodata print("Nodata value:", nodata_value)
#Nodata value: -32768.0 #Change value of nodata to one more than the maximum elevation def clip_raster(gdf, img): clipped_array, clipped_transform = msk.mask(img, [mapping(gdf.iloc[0].geometry)], crop=True) clipped_array, clipped_transform = msk.mask(img, [mapping(gdf.iloc[0].geometry)], crop=True, nodata=(np.amax(clipped_array[0]) + 1)) clipped_array[0] = clipped_array[0] + abs(np.amin(clipped_array)) value_range = np.amax(clipped_array) + abs(np.amin(clipped_array)) return clipped_array, value_range nepal_topography, value_range = clip_raster(nepal, file_mosaic) #Check that this worked
print(value_range) #Let's give the nodata value a new background color
from matplotlib import cm
from matplotlib.colors import ListedColormap,LinearSegmentedColormap #Sesmic
new_seismic = cm.get_cmap('seismic', 8828) #Define background color
background_color = np.array([0.9882352941176471, 0.9647058823529412, 0.9607843137254902, 1.0]) #Use color map
newcolors = new_seismic(np.linspace(0, 1, 8828)) # Add the background color as the last row to the newcolors array.
newcolors = np.vstack((newcolors, background_color)) #Use new Italy Color Map
new_seismic = ListedColormap(newcolors) #Create final map and save
plt.figure(figsize=(10,10))
c = plt.imshow(nepal_topography[0], cmap = new_seismic)
clb = plt.colorbar(c, shrink=0.4)
clb.ax.set_title('Elevation (meters)',fontsize=10) plt.savefig(r'pathTopographic_Map_Nepal.png', bbox_inches='tight')
plt.show()
الخريطة الطبوغرافية | بايثون

هاهو! لدينا خريطة طبوغرافية لنيبال تشير بوضوح إلى الارتفاعات المختلفة في البلاد والمناطق الطبوغرافية الثلاث.

وفي الختام

لقد تعلمت إنشاء خريطة طبوغرافية في Python باستخدام البيانات الجغرافية المكانية من المسح الجيولوجي للولايات المتحدة (USGS). لقد تعلمت أيضًا أهمية الاهتمام بالقيم المفقودة في مجموعة البيانات النهائية للتصور.

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

الوجبات السريعة الرئيسية

  • الخرائط الطبوغرافية هي أدوات مفيدة لصنع القرار القائم على الأدلة.
  • تلعب التضاريس والارتفاع دورًا مهمًا في التخطيط الحضري وتقديم الخدمات وعدم المساواة.
  • تمتلك Python أدوات مفيدة لتحليل البيانات الجغرافية المكانية.
  • يعتبر الاهتمام بعدم وجود قيم بيانات في هذا النوع من البيانات أمرًا بالغ الأهمية للتصور.
  • يمكن أن يؤدي تصور البيانات الجغرافية المكانية إلى توليد معلومات قيمة على مستويات مفصلة.

آمل أن تكون قد وجدت هذه المقالة مفيدة. لا تتردد في التواصل معي على لينكدين:. دعنا نتواصل ونعمل على الاستفادة من البيانات من أجل التغيير الإيجابي.

الأسئلة المتكررة

س 1. ماذا يوجد على الخريطة الطبوغرافية؟

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

س 2. ما هي الخريطة الطبوغرافية المستخدمة؟

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

س 3. ما هو التحليل الجغرافي المكاني في بايثون؟

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

س 4. ما هي مجموعة بيانات GMTED2010؟

تستفيد مجموعة بيانات GMTED2010 من توفر بيانات الارتفاع عالية الجودة التي تم الحصول عليها من مصادر مختلفة ، مثل Shuttle Radar Topography Mission (SRTM) ، وبيانات الارتفاع الكندية ، وبيانات Spot 5 Reference3D ، والقمر الصناعي للجليد والسحابة والأرض. (ICESat). تساهم هذه المصادر الجديدة في تعزيز دقة وتغطية البيانات الطبوغرافية العالمية. يمثل GMTED2010 تقدمًا كبيرًا في البيانات الطبوغرافية العالمية ، مما يسهل التحليلات الجغرافية المكانية المختلفة ويدعم العديد من التطبيقات المهمة.

الوسائط الموضحة في هذه المقالة ليست مملوكة لـ Analytics Vidhya ويتم استخدامها وفقًا لتقدير المؤلف.

بقعة_صورة

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

بقعة_صورة