这段时间,简单的学了一下arcgis作图基础,了解了一些基本操作,然后试着找了些数据练练手。
对于我来说,做个简单的地图能够表示数据就可以了,并不需要多么专业
这里主要学习和参考了:Arcgis(二) 绘制区域划分示意图——以重庆五大功能区为例
照着步骤做了一下
练习的最终效果如下,由于刚学没多久,还有许多操作没学会,所以这个图并不完整,还有很多地方需要进一步调整,不过这也算是一个开始吧
要做这个图,首先是需要得到其地理数据,具体操作如下
1 获取数据
在阿里云矢量数据网站中找到重庆市,下载数据
得到一个json文件
接下来利用python将此json文件转为shapefile文件,代码如下:
import geopandas
import os
os.chdir('C:/Users/Administrator/Desktop/') #工作路径转为桌面
def saveShapefile(file_name,output_shapefile_name):
try:
data = geopandas.read_file(file_name)
localPath = str(output_shapefile_name)
data.to_file(localPath, driver='ESRI Shapefile', encoding='gbk')
print("转化成功,文件存放位置:"+localPath)
except:
print("转化失败")
saveShapefile('重庆市.json','重庆')
注:geopandas库用pip比较难安装,最好是离线安装,应该是在安装这个库之前需要提前安装好这四个库gdal、Shapely、Fiona、pyproj
可以参见博文geopandas安装心得
在这个网站https://www.lfd.uci.edu/~gohlke/pythonlibs/下载好这四个库gdal、Shapely、Fiona、pyproj,然后在cmd或者Anaconda Prompt中输入pip install 再把这个whl文件按住拖动到pip install 后面,回车安装。
下载库的时候,有点难找,可直接利用Ctrl+F查找要下载的库
也可以离线打包下载
离线下载安装包
下载单个离线包 - pip download -d your_offline_packages <package_name>
批量下载离线包 - pip download -d your_offline_packages -r requirements.txt
通过python转换后,得到一个文件夹,这个就是shapefile数据
除此之外,如果还要获取一些其他相关数据
可以参见
2 在arcgis中绘图
首先连接到刚刚转换的重庆这个文件夹
将这个重庆.shp文件拖至地图显示区
接下将重庆全部主城新区选中
导出数据
保存到重庆这个文件夹中
注意:要素类必须存储在数据库中,若保存类型选择了“要素类”,其保存路径就必须先选定一个数据库而非文件夹再保存,而文件夹中只能存储shapefile文件,否则就会出现上述错误。
同样将这个文件拖至绘图区
打开其属性表
可以看到,这里的城市名不是我们想要的,需要一个一个的修改
在修改之前需要打开编辑模式
这里我的修改方法有点笨,暂且这样吧
修改完后,如下
添加数据可以使用表的连接,设置一个主键,进行连接
但这里因为只需要添加一列,我就使用添加新的字段了
将城市名这一列复制到excel中
按照顺序将数据复制粘贴到arcgis中
同样的,把主城九区数据也单独导出,设置不同的颜色
最终布局
设置布局页面
然后可以添加图例、比例尺、标题、指北针等要素
出图
最终效果