现在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 结果数据可视化数据读取import geopandas as gpdimport matplotlib.pyplot as pltregibns = 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',)先手报道,还是要养成写文章的好习惯。
|