Geopandas
مكتبة GeoPandas هي مكتبة مفتوحة المصدر بلغة Python تُسهِّل العمل مع البيانات الجغرافية (GIS). تعتمد على مكتبة Pandas، وتدمج بين مكتبات أخرى مثل Shapely، Fiona، وPyproj للتعامل مع البيانات الجغرافية المكانية.
أهم ميزات GeoPandas:
-
التعامل مع البيانات الجغرافية:
- تدعم أنواعًا متعددة من البيانات مثل النقاط (Points)، الخطوط (Lines)، والمضلعات (Polygons).
- توفر أدوات لمعالجة بيانات الخرائط (Vector data).
-
قراءة وكتابة الملفات الجغرافية:
- تدعم صيغًا شائعة مثل Shapefiles، GeoJSON، KML، وGPKG.
-
التحليل المكاني:
- حساب المسافات والمساحات.
- تنفيذ عمليات مثل الدمج المكاني (Spatial Join) والقطع (Intersection).
- تحويل الأنظمة الإحداثية (CRS transformations).
-
التكامل مع مكتبات Python أخرى:
- تتكامل مع مكتبة Matplotlib لإنشاء الرسوم البيانية والخرائط.
- يمكن استخدامها مع مكتبات مثل Folium وPlotly لإنشاء خرائط تفاعلية.
أمثلة على استخدام GeoPandas:
import geopandas as gpd
# Read a Shapefile
data = gpd.read_file("data.shp")
# Display the coordinate reference system (CRS)
print(data.crs)
# Plot the data
data.plot()
# Transform to WGS 84 CRS
data = data.to_crs("EPSG:4326")
# Calculate area for each geometry
data['area'] = data.geometry.area
تثبيت GeoPandas:
يمكن تثبيت المكتبة باستخدام pip أو conda:
pip install geopandas
أو
conda install -c conda-forge geopandas
استخدامات GeoPandas:
- تحليل البيانات الجغرافية والمكانية.
- معالجة بيانات نظم المعلومات الجغرافية (GIS).
- دمج وتحليل بيانات المواقع.
البيانات الجغرافية المكانية
في GeoPandas، يتم تخزين البيانات الجغرافية في هياكل تُسمى GeoDataFrames، وهي امتداد لمفهوم DataFrame من مكتبة Pandas ولكن مع دعم مباشر للأعمدة التي تحتوي على هندسة جغرافية (Geometry).
أنواع البيانات الجغرافية التي تدعمها GeoPandas:
- Point: يُستخدم لتمثيل المواقع الفردية (مثل إحداثيات مدينة).
- LineString: يُستخدم لتمثيل الخطوط (مثل الطرق).
- Polygon: يُستخدم لتمثيل المناطق المغلقة (مثل البحيرات أو الحدود).
- MultiPoint، MultiLineString، MultiPolygon: لتمثيل مجموعات من الكائنات الجغرافية.
قراءة البيانات الجغرافية:
GeoPandas تستطيع قراءة بيانات من ملفات مختلفة مثل:
- Shapefile (الامتداد
.shp
). - GeoJSON (الامتداد
.geojson
). - CSV مع أعمدة تحتوي على إحداثيات.
- قواعد البيانات الجغرافية مثل PostGIS.
مثال:
العمليات الجغرافية الأساسية:
1. Spatial Join (الدمج المكاني):
لدمج البيانات بناءً على التقاطع الجغرافي:
2. Buffer (إنشاء مناطق محيطة):
يمكنك إنشاء منطقة محيطة (Buffer) حول كل عنصر:
3. Intersection (التقاطع):
لإيجاد المنطقة المشتركة بين هندستين:
4. Union (الاتحاد):
لدمج جميع الأشكال في شكل واحد:
5. Dissolve (التجميع):
لدمج المضلعات حسب قيمة معينة في عمود:
نظام الإحداثيات (Coordinate Reference System - CRS):
GeoPandas يسمح بالعمل مع أنظمة إحداثية مختلفة وتحويل البيانات بينها.
عرض النظام الحالي:
تحويل النظام:
التكامل مع مكتبات أخرى:
1. Matplotlib لرسم الخرائط:
2. Folium للخرائط التفاعلية:
3 التحقق من صحة البيانات الجغرافية:
في كثير من الأحيان، تكون البيانات الجغرافية غير نظيفة، وتحتاج إلى التحقق منها وتصحيحها:
4. قراءة وكتابة أنواع ملفات متعددة:
- GeoPandas تدعم صيغ متعددة مثل Shapefile، GeoJSON، وغيرها.
- أمثلة:
5. تحليل البيانات الجغرافية:
- تحليل البيانات بناءً على السمات الجغرافية والمكانية:
- Spatial Join: ربط بيانات بناءً على الموقع.
- Clipping: قص البيانات بناءً على حدود معينة.
- أمثلة:
6. التعامل مع الأعمدة الهندسية (Geometry Columns):
- العمود الرئيسي في GeoDataFrame هو
geometry
الذي يحتوي على الكائنات الهندسية. - أمثلة على العمليات: