Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

lat_0, lon_0 ignored

Đang mở
#192 3 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
35/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
python
Lĩnh vực
data-visualization

Hướng nghiên cứu

Bắt đầu với phần thiết lập phép chiếu Basemap và các điểm vào chuyển đổi tọa độ, sau đó chạy ví dụ Cylindrical Equal Area được cung cấp với và không có lat_0 và lon_0. Xác minh xem m(0, 0, inverse=True) có tuân theo gốc tọa độ được cung cấp thay vì trả về các giới hạn phía dưới bên trái của bản đồ hay không; hoàn tất khi hành vi khớp với các tham số được tài liệu hóa hoặc giới hạn này được xác lập rõ ràng.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

I am trying to set up Basemap to use a Cylindrical Equal Area projection and to place the origin at a specific lat/lon (this is to match some input x/y data that uses a false easting/northing), but it seems that setting the lat_0 and lon_0 parameters does nothing.

from mpl_toolkits.basemap import Basemap

# Oklahoma bounds 
# ('o' = origin at corner of Kingfisher/Logan/Canadian/Oklahoma counties)
lats = {'n':  37.1, 's':  33.6,  'c':  35.5, 'o':  35.726}
lons = {'e': -94.4, 'w': -103.0, 'c': -97.5, 'o': -97.674}

buf = 0.05 # plot buffer size (in degrees)

res = 'c' # map shapes resolution

# projection parameters
proj = 'cea' # cylindrical equal area
lat_ts = lats['c'] # true scale at geographic center
lon_0 = lons['o']  # x=0 at counties corner
lat_0 = lats['o']  # y=0 at counties corner

m = Basemap(projection = proj, lat_ts = lat_ts, resolution = res,
            lon_0 = lon_0, lat_0 = lat_0,
            urcrnrlon = lons['e'] + buf, urcrnrlat = lats['n'] + buf,
            llcrnrlon = lons['w'] - buf, llcrnrlat = lats['s'] - buf*4)

Then checking the origin gives:

In [15]: m(0, 0, inverse=True)
Out[15]: (-103.05000000000305, 33.399999999963455)

...which is the lower-left corner of the map bounds, not the coordinates I gave for lat_0 and lon_0. I get the same output if I leave out lat_0 and lon_0 entirely.

At first, I thought maybe the CEA projection doesn't support these parameters and that I should just shift my data manually, but the docs claim that lat_0 and lon_0 are used by all projections to set the origin.

As a workaround, I can set an offset to get the intended results:

offset = m(lon_0, lat_0)
df['x'], df['y'] = (df.x + offset[0], df.y + offset[1]) # where df is a Pandas dataframe with my data

Note: Originally posted to StackOverflow, where I was encouraged to move the issue here. http://stackoverflow.com/questions/31302427/lat-0-lon-0-ignored-by-basemap

Ngôn ngữ chính
Python
Star
817
Fork
395
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của matplotlib/basemap

Tất cả issue của matplotlib/basemap

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.