底图和项目得到不同的投影结果

时间:2018-11-07 16:07:19

标签: matplotlib-basemap proj

我正在努力使用pyproj了解这些预测。

现在我的问题是了解投影操作的结果

我在x,y上投影有以下坐标:

multiApplyTracking = {
  track: function track() {
    var input = [].slice.call(document.getElementsByTagName("Input"));
    checkboxes = input.slice(2, input.length - 3);
    var applications = checkboxes.map(function(checkboxes) {
      return checkboxes.checked;
    }).filter(Boolean).length;
    console.log("Number of Applications: " + applications);
    if ("ga" in window) {
      var tracker = ga.getAll()[0];
      if (tracker)
        for (i = 0; i < applications; i++) {
          tracker.send("event", "User Application", "Apply");
          console.log("Application tracked!");
        }
    }
  }
};
multiApplyTracking.track();

20414190.011221122 65799915.8523339 20685694.35308374 66653928.94763097 (376681.6684318804,6229168.979819128)(648186.0102944968,7083182.075116195) (0.0590582592427664,0.8538251057188​​251)(0.10162622883366988,0.9376231627625158)

为什么我使用相同的投影参数时结果不同 作为地理空间数据处理的新手,我预先为一个可能不重要的问题道歉

1 个答案:

答案 0 :(得分:0)

对于Mercator投影,底图在可计算值的左下角使用网格坐标系的原点。使用您的代码,值可以计算为

M(0, 0, inverse=True)
# output: (-180.0, -89.98999999999992)

如果计算(long = 0,lat = 0)的投影坐标并将其值分配给(x0,y0)。您将获得坐标(x0,y0)的偏移,从而使其投影坐标与标准值(在地图中心的0,0)不同。

lon0, lat0 = 0, 0
x0, y0 = M(lon0, lat0)
# x0=20015077.371242613, y0=59546805.8807

对于(long = 3.383789,lat = 48.920575)处的测试点,

lon1 = 3.383789
lat1 = 48.920575
x1, y1 = M(lon1, lat1)

应用坐标偏移后,结果为

print(x1-x0, y1-y0)
# output: (376259.9924608879, 6254386.049398325)

pyproj中的值进行比较

p0 = Proj(proj='merc', ellps='WGS84', errcheck = True)
print(p0(lon1, lat1))
# output (376681.6684318804, 6229168.979819128)

他们非常同意,但并没有达成共识。对于小比例尺地图绘图,您看不到地图上的差异。