2021SC@SDUSC
一、数据来源
来自某公众号的分享,使用山东省16个城市的全部poi,与渔网进行空间连接,获得每个渔网内各类型poi的数量,但是这项工作研究很久后没有找到直接实现的方式,不确定ArcMap有没有这样的分类统计功能,如果有的朋友也可以留言告诉我一下,我是在处理完之后利用python读进来继续处理的,比较麻烦,但也能完成。
二、数据的处理
新打开的arcmap点文件-添加数据+添加xy数据
点编辑搜这个坐标系再导入
导入后右键再导出数据
右键添加数据,添加上回裁剪好的渔网
右键连接-连接数据
连接好的数据表直接导出成txt,记着写个能认出来的名字
url1 = 'POI.xlsx'
url2 = url + city + url1
df = pd.read_excel(url2)
poi_list = ['购物消费','餐饮美食','生活服务','公司企业','交通设施','政府机构','科教文化',
'汽车相关','医疗保健','行政地标','商务住宅','酒店住宿','金融机构','休闲娱乐','运动健身','旅游景点','自然地物']
#print(df['大类'].value_counts)
#print(df)
df_final = pd.DataFrame(data=None,columns=['购物消费','餐饮美食','生活服务','公司企业','交通设施','政府机构','科教文化',
'汽车相关','医疗保健','行政地标','商务住宅','酒店住宿','金融机构','休闲娱乐','运动健身','旅游景点','自然地物','X','Y','density'])
for i in range(len(df)):
# print(df.loc[i]['经度'])
if pd.isnull(df.loc[i,'id'])==True:
continue
id = (int)(df.loc[i, 'id'])
try:
df_final.loc[id][df.loc[i]['大类']] = df_final.loc[id][df.loc[i]['大类']]+1
except KeyError as e:
df_final.loc[id] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
df_final.loc[id]['X'] = df.loc[i]['X']
df_final.loc[id]['Y'] = df.loc[i]['Y']
df_final.loc[id]['density'] = df.loc[i]['density']
df_final.loc[id][df.loc[i]['大类']] = 1
# basedata['indus'].iloc[i] = 'str11'
df_final.reset_index(inplace=True)
df_final = df_final.dropna(axis=0, how="any", subset=["X", "Y"])
df_final = df_final[~df_final['X'].isin([0])]
df_final.fillna(0,inplace=True)
df_final.drop(['index'], axis=1, inplace=True)
url6 = city
url7 = 'POIandRoadMap.csv'
url8 = url5 + url6 + url7
df_final.to_csv(url8, encoding='utf_8_sig')
print(df_final)