2021SC@SDUSC 项目实训-ArcMap处理poi数量

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)

猜你喜欢

转载自blog.csdn.net/m0_46306466/article/details/125121729