Python 底图坐标
Python Basemap Coordinates
我正在使用 python 3.6 在底图上打开亚马逊河的 shapefile。但是我对坐标在 python 中的工作方式感到困惑。我查了亚马逊河的坐标,发现是lon,lat=-55.126648,-2.163106。但是要打开我的地图,我需要角的 lat/lon 值,但我不确定如何获取。
到目前为止,这是我的代码:
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
map= Basemap(projection='tmerc',
lon_0=180,
lat_0=0,
resolution='l')
map.drawmapboundary(fill_color='aqua')
map.fillcontinents(color='#ddaa66',lake_color='aqua')
map.drawcoastlines()
map.readshapefile('filename','Amazon')
plt.show()
这是我尝试 运行 时收到的错误消息:
ValueError:必须指定角的 lat/lon 值
(llcrnrlon,llcrnrlat,ucrnrlon,urcrnrlat) 以度为单位或以米为单位的宽度和高度
创建地图 (map = Basemap(...)
) 时,您需要指定这些值。它们是左下角经度、左下角纬度、右上角经度和右上角纬度。这些定义了地图的范围。你可以只绘制整个地球,然后查看你想要的区域并从中挑选点作为你的新角落。
此类点绘图的最佳方法是从点 'zooming out' 创建自己的角。这意味着您需要指定 llcrnrlat(左下角纬度)等:
my_coords = [38.9719980,-76.9219820]
# How much to zoom from coordinates (in degrees)
zoom_scale = 1
# Setup the bounding box for the zoom and bounds of the map
bbox = [my_coords[0]-zoom_scale,my_coords[0]+zoom_scale,\
my_coords[1]-zoom_scale,my_coords[1]+zoom_scale]
plt.figure(figsize=(12,6))
# Define the projection, scale, the corners of the map, and the resolution.
m = Basemap(projection='merc',llcrnrlat=bbox[0],urcrnrlat=bbox[1],\
llcrnrlon=bbox[2],urcrnrlon=bbox[3],lat_ts=10,resolution='i')
如果您想查看有关从 .csv 文件绘制 lat/lon 点的完整教程,请查看我的教程,我在其中完成了整个过程并包含完整代码:
Geographic Mapping from a CSV File Using Python and Basemap
您最终得到的结果如下所示:
我正在使用 python 3.6 在底图上打开亚马逊河的 shapefile。但是我对坐标在 python 中的工作方式感到困惑。我查了亚马逊河的坐标,发现是lon,lat=-55.126648,-2.163106。但是要打开我的地图,我需要角的 lat/lon 值,但我不确定如何获取。
到目前为止,这是我的代码:
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
map= Basemap(projection='tmerc',
lon_0=180,
lat_0=0,
resolution='l')
map.drawmapboundary(fill_color='aqua')
map.fillcontinents(color='#ddaa66',lake_color='aqua')
map.drawcoastlines()
map.readshapefile('filename','Amazon')
plt.show()
这是我尝试 运行 时收到的错误消息: ValueError:必须指定角的 lat/lon 值 (llcrnrlon,llcrnrlat,ucrnrlon,urcrnrlat) 以度为单位或以米为单位的宽度和高度
创建地图 (map = Basemap(...)
) 时,您需要指定这些值。它们是左下角经度、左下角纬度、右上角经度和右上角纬度。这些定义了地图的范围。你可以只绘制整个地球,然后查看你想要的区域并从中挑选点作为你的新角落。
此类点绘图的最佳方法是从点 'zooming out' 创建自己的角。这意味着您需要指定 llcrnrlat(左下角纬度)等:
my_coords = [38.9719980,-76.9219820]
# How much to zoom from coordinates (in degrees)
zoom_scale = 1
# Setup the bounding box for the zoom and bounds of the map
bbox = [my_coords[0]-zoom_scale,my_coords[0]+zoom_scale,\
my_coords[1]-zoom_scale,my_coords[1]+zoom_scale]
plt.figure(figsize=(12,6))
# Define the projection, scale, the corners of the map, and the resolution.
m = Basemap(projection='merc',llcrnrlat=bbox[0],urcrnrlat=bbox[1],\
llcrnrlon=bbox[2],urcrnrlon=bbox[3],lat_ts=10,resolution='i')
如果您想查看有关从 .csv 文件绘制 lat/lon 点的完整教程,请查看我的教程,我在其中完成了整个过程并包含完整代码:
Geographic Mapping from a CSV File Using Python and Basemap
您最终得到的结果如下所示: