利用Python计算容积率

利用Python计算容积率

先在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  

###结果
利用Python计算容积率_第1张图片

数据可视化

数据读取

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',)

利用Python计算容积率_第2张图片

先手报道,还是要养成写博客的好习惯。

你可能感兴趣的:(笔记,gis,python)