目标:画一个北极上空的俯瞰
地理坐标系和投影坐标系的区别
arcgis帮助:什么是地理坐标系、投影坐标系
- 地理坐标系是球面坐标,参考平面是椭球面,坐标单位是经纬度;
- 投影坐标系是平面坐标系,参考平面是水平面,坐标单位是米、千米等。
- 地理坐标系转换到投影坐标系的过程理解为投影,即将不规则的地球曲面转换为平面
画图常用的地理坐标系:GCS_WGS_1984
arcgis中支持的投影坐标系
示例
这里画北极,选择的投影坐标系是North_Pole_Azimuthal_Equidistant(World)
投影变换
转换前
投影变换
arctoolbox – 数据管理工具 – 投影和变换 – 投影
输入shp文件路径和导出的路径,选择目标坐标系。然后确定。
之后因为arcgis默认会使用第一个打开的shp文件的投影格式,所以如果要看到效果,需要重新打开一个mxd文件。
转换后
显示经纬度
左下角的“布局视图”
然后在出来的图层上右键-属性-网格
其实布局视图也能改坐标系,只不过都是在这个mxd里面改的,并没有将转换坐标后的shp文件导出。
选择“经纬网”,剩下的跟着走,然后确定。
excel坐标转点文件
excel的是经纬度。纬度负值表示南半球,经度负值表示西半球
因为用的是Azimuthal_Equidistant(python里的aedq投影),所以不能用经纬度导入,要转换一下。
经纬度数据:
用python Basemap库转换
import pandas as pd
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as pltdata = pd.read_csv(path)
lon, lat = data[['lon', 'lat']].values.T
map = Basemap(width=0,height=0,projection='aeqd',lat_0=90,lon_0=0)
x, y = map(lon, lat)
data2 = pd.DataFrame()
data2['lon'] = x
data2['lat'] = y
data2.insert(0,'id',range(data2.shape[0]))
data2.to_csv(path2)
data2:
导入arcgis中
另外,xlxs格式是无法导入的,转换成csv格式
添加数据
添加之后要显示xy数据
这时候发现歪了。。不过没关系,可以通过导出shp文件-选择数据-编辑把它拖正
先选择数据,再编辑拖正
新建shp文件
在右边的目录中找到想要储存的位置,新建shp文件
然后在新加的图层上开始编辑
右边点图层,选择“面”,然后就能绘画了
再用一次投影转换为GCS_WGS_1984,就可以用python basemap
附一个python Basemap包里的投影类型对应的参数