现在ArcGIS计算好面积,导出dbf表格,在Python进行数据处理和可视化。
数据处理
读取数据
from dbfread import DBF
import pandas as pd
### 读取ArcGIS里面导出的dbf表格
table = DBF("汇总表.dbf",encoding="utf8")
data = pd.DataFrame(table)
data.head()
数据清洗
data.rename(columns={'地块面':'地块面积', 'layers':'楼层', '建筑总':'建筑总面积','基底面':'基底面积'}, inplace = True)
data = data.drop(labels=["OBJECTID","Shape_Leng","Shape_Area","楼层"],axis=1)
data = data[["地块名", "基底面积", "建筑总面积", "地块面积"]]
data.head()
数据透视
pivot1 = pd.pivot_table(data,index=["地块名"],values=["基底面积","建筑总面积",],aggfunc=sum)
pivot2 = pd.pivot_table(data,index=["地块名"],values=["地块面积",],aggfunc=max)
pivot = pd.merge(pivot1, pivot2, on="地块名")
pivot
计算容积率和建筑密度
pivot["建筑密度"] = pivot["基底面积"]/pivot["地块面积"]
pivot["容积率"] = pivot["建筑总面积"]/pivot["地块面积"]
pivot
结果
结果.png数据可视化
数据读取
import geopandas as gpd
import matplotlib.pyplot as plt
regibns = gpd.GeoDataFrame.from_file('MyProject.gdb',layer='地块')
regibns.plot()
数据连接
reg = pd.merge(regibns, pivot, left_on='地块名',right_on='地块名')
reg
分级设色图
reg.plot(figsize=(12, 12), column='容积率', scheme='quantiles', legend=True, cmap='Reds', edgecolor='k',)
开发强度图.png
先手报道,还是要养成写文章的好习惯。
网友评论