عمل خرائط تفاعلية عن طريق البايثون باستخدام المكتبة folium

المشرف العام

Administrator
طاقم الإدارة


Folium



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


تحميل البيانات​


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

الشقق المتاحة لمدينة برلين من الرابط التالية

نقوم بتحميل البيانات من الرابط التالي باختيار بيانات مدينة برلين
listings.csv الملف ذو الاسم

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


MarkerCluster​




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


import folium
import geopandas as gpd
import numpy as np
#from folium.plugins import HeatMap
from folium.plugins import MarkerCluster
# ايضافة الطبقة
m= gpd.read_file('C:\\Users\\marte\\Desktop\\bezirksgrenzen.shp\\prise.shp')
# عمل خلية تحتوي الاحداثيات ضمن مصفوفة
m['lat']=m.geometry.x
m['lon']=m.geometry.y
point_array=m[['lon','lat']].values
# انشاء الخريطة
map4=folium.Map(location=[52.42,13.4],zoom_start=10,control_scale=True)
# ايضافة طبقة للتقسمات الادارية لبرلين
One = gpd.read_file('C:\\Users\\marte\\Desktop\\bezirksgrenzen.shp')
folium.GeoJson(One).add_to(map4)
# MarkerCluster ايضافة الاحداثيات الي الخريطة بنمط العرض
marker_cluster=MarkerCluster().add_to(map4)
for i in range(0,len(m)):
lat=m['lat']
lon=m['lon']
folium.RegularPolygonMarker(location=[lon,lat],fill_color='#2b8cb2',number_of_sides=6,radius=8).add_to(marker_cluster)
# htmlحفظ الخريطة كملف
map4.save(outfile= "MarkerCluster.html")


Heatmap​


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



import folium
import geopandas as gpd
import numpy as np
from folium.plugins import HeatMap
# انشاء الخريطة
map3=folium.Map(location=[52.5,13.4],zoom_start=10,control_scale=True)
# ايضافة البيانات التي سيتم عرضها علي الخريطة
m= gpd.read_file('C:\\Users\\marte\\Desktop\\bezirksgrenzen.shp\\prise.shp'
#عمل خريطة حرارية لاظهار المناطق التي تحتوي عدد كبير من الشقق المتاحة للايجار
HeatMap(point_array,radius=11).add_to(map3)
# htmlحفظ الخريطة كملف
map3.save(outfile= "HeatMap.html")



تستطيع تحسين العرض السابق من خلال توسيع الاكواد السابقة

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

متابعة القراءة...
 
أعلى