geopandas ile koroplet haritalar

Python ile Coğrafi Verileri Görselleştirme

Mary van Valkenburg

Data Science Program Manager, Nashville Software School

ardışık renk haritalarının grafiği

Python ile Coğrafi Verileri Görselleştirme

GeoDataFrame.plot() ile koroplet

districts_with_counts.plot(column = 'school_density', legend = True)
plt.title('Ondalık derece kare başına okul sayısı')
plt.xlabel('boylam')
plt.ylabel('enlem');

viridis renk haritasıyla okul yoğunluklarının koropleti

Python ile Coğrafi Verileri Görselleştirme

GeoDataFrame.plot() ile koroplet

districts_with_counts.plot(column = 'school_density', cmap = 'BuGn', edgecolor = 'black', legend = True)
plt.title('Ondalık derece kare başına okul sayısı')
plt.xlabel('boylam')
plt.ylabel('enlem');

mavi-yeşil renk haritasıyla okul yoğunluklarının koropleti

Python ile Coğrafi Verileri Görselleştirme

Alan (kilometre kare)

# starting CRS
print(school_districts.crs)
epsg:4326
# convert to EPSG 3857
school_districts = school_districts.to_crs(epsg = 3857)
print(school_districts.crs)
epsg:3857
Python ile Coğrafi Verileri Görselleştirme

Alan (kilometre kare)

# define a variable for m^2 to km^2
sqm_to_sqkm = 10**6

school_districts['area'] = school_districts.area / sqm_to_sqkm
school_districts.head(2)
district    geometry                             area
1          (POLYGON ((-965.055 4353528.766...    563.134380
3          (POLYGON ((-965.823 4356392.677...    218.369949
Python ile Coğrafi Verileri Görselleştirme
# change crs back to 4326
school_districts = school_districts.to_crs(epsg = 4326)
print(school_districts.crs)
epsg:4326
print(school_districts.head(2))
district      geometry                       area
1             (POLYGON ((-86.771 36.383...   563.134380
3             (POLYGON ((-86.753 36.404...   218.369949
# spatial join to get districts that contain schools
schools_in_districts = gpd.sjoin(school_districts, schools_geo, predicate = 'contains')
Python ile Coğrafi Verileri Görselleştirme
# aggregate to get counts
school_counts = schools_in_districts.groupby(['district']).size()
# convert school_counts to a df 
school_counts_df = school_counts.to_frame()
school_counts_df = school_counts_df.reset_index(level=0)
school_counts_df.columns = ['district', 'school_count']
# merge
districts_with_counts = pd.merge(school_districts,
                                 school_counts_df, on = 'district')
districts_with_counts.head(1)
district  geometry                       area       school_count
1         (POLYGON ((-86.771 36.383..    563.134380    30
Python ile Coğrafi Verileri Görselleştirme

Okul yoğunluğunu hesaplama

# create school_density
districts_with_counts['school_density'] = districts_with_counts.apply(
    lambda row: row.school_count/row.area, axis = 1)
# plot it
districts_with_counts.plot(column = 'school_density', cmap = 'BuGn', 
                           edgecolor = 'black', legend = True)
plt.title('Kilometre kare başına okul sayısı')
plt.xlabel('boylam')
plt.ylabel('enlem')
plt.show();
Python ile Coğrafi Verileri Görselleştirme

kilometre kare başına okul yoğunluklarının koropleti

Python ile Coğrafi Verileri Görselleştirme

Hadi pratik yapalım!

Python ile Coğrafi Verileri Görselleştirme

Preparing Video For Download...