پرش به محتویات

جلسه ۳ - تحلیل جمعیت و تجمیع

در این جلسه، ابتدا به معرفی مدل 2SFCA (Two-Step Floating Catchment Area) پرداختیم. این مدل ابزاری اساسی در شهرسازی است که برای ارزیابی دسترسی به خدمات عمومی، به‌ویژه خدمات بهداشتی و درمانی، طراحی شده است. هدف اصلی مدل 2SFCA شناسایی نابرابری‌های فضایی در دسترسی به منابع و خدمات شهری است. در ابتدا، این مدل میزان دسترسی به خدمات در هر منطقه را محاسبه می‌کند؛ به این صورت که هر مکان خدماتی، مانند بیمارستان یا مدرسه، به جمعیت‌های اطراف خود در یک شعاع خاص، که معمولاً به‌طور استاندارد مشخص می‌شود، ارزیابی می‌شود. سپس، این دسترسی‌ها به‌طور تجمیعی برای هر نقطه جمعیتی محاسبه می‌شود و یک امتیاز کلی از دسترسی به خدمات برای هر ناحیه مشخص می‌شود. در نهایت، این مدل کمک می‌کند تا مناطقی که دسترسی کمتری به خدمات دارند شناسایی و در آن‌ها اقدامات مناسب جهت بهبود دسترسی انجام شود. مدل 2SFCA ابتدا برای ارزیابی دسترسی به خدمات بهداشتی توسعه یافت، اما به‌طور گسترده‌ای در سایر حوزه‌ها مانند فضاهای سبز، مراکز آموزشی، ایستگاه‌های حمل‌ونقل، فروشگاه‌های مواد غذایی و حتی دیگر خدمات عمومی نیز کاربرد دارد. این مدل به متخصصان شهرسازی این امکان را می‌دهد که با شناسایی مناطق کم‌دسترس، منابع را به‌طور مؤثرتری توزیع کنند و اقدامات اصلاحی برای کاهش نابرابری‌های فضایی انجام دهند. به‌عنوان مثال، با استفاده از این مدل، مناطقی که به دلیل فاصله زیاد از بیمارستان‌ها یا مدارس به خدمات محدود دسترسی دارند شناسایی شده و می‌توان به بهبود دسترسی در این مناطق اقدام کرد.

پس از توضیح تئوری مدل 2SFCA، به سراغ بخش عملی کار با این مدل در پایتون و جزییات پیاده‌سازی آن در محیط VS Code رفتیم. برای شروع، در جلسه قبلی VS Code را روی سیستم خود نصب کردیم و یک محیط مجازی پایتون به نام GIS ایجاد کردیم. برای شروع کار با پایتون و Jupyter Notebook در VS Code، لازم است تا افزونه‌های مورد نیاز را نصب کرده و در ترمینال VS Code دستور زیر را وارد کنیم:

pip install notebook

این دستور باعث نصب Jupyter Notebook در محیط مجازی می‌شود. سپس برای ایجاد محیط مجازی پایتون، دستور زیر را وارد می‌کنیم:

python -m venv GIS

این دستور یک محیط مجازی به نام GIS در دایرکتوری مورد نظر ایجاد می‌کند. پس از آن برای فعال‌سازی محیط مجازی، در ویندوز از دستور زیر استفاده می‌کنیم:

.\GIS\Scripts\activate

و در سیستم‌عامل‌های لینوکس یا مک، از دستور زیر استفاده می‌کنیم:

source GIS/bin/activate

پس از فعال‌سازی محیط، نام محیط مجازی در ترمینال نمایش داده خواهد شد و تمام بسته‌هایی که نصب می‌کنیم، فقط در این محیط فعال خواهند بود. سپس برای نصب Jupyter Notebook، باید دستور زیر را وارد کنیم:

pip install notebook

پس از نصب Jupyter Notebook، می‌توانیم اولین فایل خود را با پسوند .ipynb ایجاد کرده و کدهای خود را در آن بنویسیم. برای مثال، برای استفاده از کتابخانه‌های Pandas و GeoPandas، باید ابتدا این دو کتابخانه را نصب کنیم:

pip install pandas geopandas

کتابخانه‌های Pandas و GeoPandas ابزارهایی هستند که برای پردازش داده‌های جدولی و جغرافیایی به ترتیب استفاده می‌شوند. کتابخانه pandas یکی از ابزارهای پرکاربرد در علم داده است که به شما این امکان را می‌دهد که داده‌ها را در DataFrame نگهداری کرده و عملیات مختلفی بر روی آن‌ها انجام دهید. این کتابخانه به‌ویژه برای تحلیل داده‌ها و پردازش اطلاعات جدولی کاربرد دارد. در مقابل، geopandas یک افزونه برای pandas است که به شما امکان پردازش داده‌های جغرافیایی (geospatial) مانند Shapefile ها، GeoJSON، و سایر فرمت‌های جغرافیایی را می‌دهد. تفاوت‌های اصلی pandas و geopandas:

  • pandas: برای پردازش داده‌های جدولی و تحلیل داده‌ها با ساختارهایی مشابه جدول استفاده می‌شود. به کمک pandas می‌توانید داده‌ها را در DataFrame نگهداری کرده و عملیات مختلفی مانند فیلتر کردن، گروه‌بندی، تجزیه و تحلیل انجام دهید.
  • geopandas: یک کتابخانه برای پردازش داده‌های جغرافیایی است که می‌تواند داده‌های مکانی را در قالب‌هایی مانند Shapefile، GeoJSON، و دیگر فرمت‌ها بارگذاری کرده و پردازش کند. GeoDataFrame در geopandas مشابه DataFrame در pandas است، با این تفاوت که می‌تواند داده‌های جغرافیایی شامل نقاط، خطوط، و چندضلعی‌ها را نگهداری کند.

به‌عنوان مثال، برای بارگذاری داده‌های جغرافیایی از Shapefile، از متد gpd.read_file() استفاده می‌کنیم:

gdf_hoods = gpd.read_file(r"data\mahallat.shp")
gdf_popblocks = gpd.read_file('data/pop/tehran_popblocks_95.shp')

این خطوط کد، داده‌های جغرافیایی موجود در فایل‌های Shapefile را به GeoDataFrame بارگذاری می‌کنند که برای تجزیه و تحلیل‌های جغرافیایی مورد استفاده قرار می‌گیرند.

CRS چیست؟

CRS (Coordinate Reference System) یک سیستم مختصات است که برای موقعیت‌یابی نقاط در سطح زمین استفاده می‌شود. در واقع، CRS تعیین می‌کند که چگونه مختصات جغرافیایی، مانند طول و عرض جغرافیایی، به یک سیستم مختصات دو بعدی یا سه‌بعدی تبدیل می‌شود. CRS تضمین می‌کند که داده‌های جغرافیایی به‌درستی در مکان‌های صحیح خود بر روی نقشه نمایش داده شوند. در GeoPandas، هر GeoDataFrame دارای CRS خاص خود است که می‌تواند هنگام بارگذاری داده‌ها تعیین شود یا بعداً تغییر یابد. برای مشاهده CRS داده‌ها می‌توان از دستور زیر استفاده کرد:

print(gdf.crs)

اگر داده‌ها نیاز به تغییر CRS داشته باشند، می‌توان از متد to_crs() برای تغییر آن استفاده کرد. به‌عنوان مثال، برای تغییر CRS به سیستم مختصات جهانی WGS 84 (EPSG:4326)، از دستور زیر استفاده می‌کنیم:

gdf = gdf.to_crs(epsg=4326)

این دستور CRS داده‌ها را به EPSG:4326 تغییر می‌دهد، که یکی از متداول‌ترین CRS ها برای داده‌های جغرافیایی است. تغییر CRS بسیار مهم است زیرا داده‌های جغرافیایی از منابع مختلف ممکن است CRS‌های متفاوتی داشته باشند و برای تحلیل‌های دقیق‌تر باید همه داده‌ها در یک CRS مشابه هم‌راستا شوند.