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
متابعة القراءة...