了解我的 shapefile 的坐标点(不是 lat/lon)以及为什么空间连接不起作用
Understanding my shapefile's coordinate points (not lat/lon) and why spatial joins own't work
我下载了 Postal Codes in Mexico City here 的 shapefile。
我正在尝试进行空间连接以查看哪些邮政编码与我感兴趣的特定区域相交。
但是当我加载邮政编码时:
codigos = gpd.read_file('/Users/jaehakyu/Documents/Shapefiles/Mexico Postal Codes/CP_CdMx/CP_09CDMX_v4.shp')
codigos.head()
我注意到这些邮政编码的多边形输出很奇怪。它们不由 lat/lon 坐标组成。相反,它们看起来像这样:
POLYGON ((2794650.259300001 819469.0967999995, 2794601.180299997 819320.3825999983, 2794595.038099997 819303.2646000013, 2794581.846100003 819266.4985000007, 2794552.451700002 819177.5449000001, 2794539.257799998 819142.9415000007, 2794490.202399999 819013.9316000007, 2794461.8829 819006.0326999985, 2794333.362800002 818970.185899999, 2794287.639799997 818974.6688000001, 2794223.908 818980.9173000008, 2794210.812299997 818904.4486999999, 2794187.823399998 818901.436999999, 2794164.019500002 818896.5203000009, 2794128.538500004 818896.0044, 2794122.643299997 818895.9186999984, 2794077.665700004 818894.2122999988, 2794066.248400003 818891.7342999987, 2794046.369499996 818886.5003999993, 2794006.863200001 818880.5144000016, 2793988.908100002 818882.2074999996, 2793965.905199997 818887.1242000014, 2793955.3869 818892.3366999999, 2793903.004799999 818932.752799999, 2793796.985100001 818913.691399999, 2793741.294 818906.6301999986, 2793596.247299999 818889.4554999992, 2793571.957000002 819033.999499999, 2793552.235299997 819034.7226999998, 2793527.926200002 819036.2868999988, 2793444.091899998 818973.02, 2793442.978699997 819118.5722999983, 2793437.997699998 819133.6957999989, 2793430.251699999 819144.4745000005, 2793414.9217 819147.9660999998, 2793334.550800003 819163.0062999986, 2793290.008699998 819170.9169000015, 2793213.590499997 819263.4613000005, 2793110.11 819265.5681000017, 2793117.498800002 819308.4505000003, 2793146.486199997 819475.7197000012, 2793186.218999997 819462.5135999992, 2793249.972900003 819441.3235000001, 2793345.965300001 819414.0322999991, 2793436.257799998 819398.3966999985, 2793517.804700002 819384.2754999995, 2793565.4133 819377.8266999982, 2793601.6972 819374.2901000008, 2793787.7729 819356.7437000014, 2793841.170500003 819343.5784999989, 2793848.679399997 819336.9222000018, 2793862.701300003 819415.7888999991, 2793896.867299996 819558.6755999997, 2793912.430100001 819623.6581000015, 2793934.3768 819672.3953000009, 2793959.285499997 819765.1700000018, 2793964.056900002 819787.6761000007, 2793984.413400002 819883.6871000007, 2793997.486699998 819948.0406999998, 2794004.954099998 819981.5982000008, 2794111.821699999 819973.7314999998, 2794230.936700001 819964.9633999988, 2794347.152999997 819955.9384000003, 2794343.185599998 819899.5188000016, 2794458.9071 819890.1013999991, 2794764.265699998 819868.1314000003, 2794762.4494 819852.9858999997, 2794736.8922 819766.9114000015, 2794727.679099999 819735.4631999992, 2794672.272100002 819545.7978999987, 2794650.259300001 819469.0967999995))
无论如何我都尝试进行空间连接,但没有成功。我也尝试过使用 CartoDB 映射这些多边形,但它们没有显示出来。我不确定我在处理什么,希望得到一些帮助:
(1)这里的坐标点是什么。
(2) 如何让它们到达 lat/lon 以便空间连接可以工作
谢谢!顺便说一下,我正在使用 geopandas 和 Python 中的 shapely 来处理这个问题。
也许不言而喻,但要在空间上连接两个数据集,它们需要位于同一坐标系中。 Latitude/longitude 是一些地理坐标系中的坐标(而且不止一个,所以一定要知道是哪一个!)。
Shapefile 可以包含各种坐标系中的坐标。通常有一个 .prj
文件与描述坐标系信息的 shapefile 一起分发。
查看您的数据,我猜它是在某个投影坐标系中以米为单位测量的东距和北距。因此,在您可以在空间上连接地理坐标系中的数据之前,您首先需要 unproject 数据(从投影或平面坐标系到球体坐标系),然后可能执行a 基准偏移(针对不同地理坐标系之间的差异进行调整)。
我不知道 geopandas 或 shapely,但我知道 proj4
库有很好的 Python 绑定并且可以执行这些操作。但无论哪种方式,您都需要 .prj
文件中的数据。
我下载了 Postal Codes in Mexico City here 的 shapefile。
我正在尝试进行空间连接以查看哪些邮政编码与我感兴趣的特定区域相交。
但是当我加载邮政编码时:
codigos = gpd.read_file('/Users/jaehakyu/Documents/Shapefiles/Mexico Postal Codes/CP_CdMx/CP_09CDMX_v4.shp')
codigos.head()
我注意到这些邮政编码的多边形输出很奇怪。它们不由 lat/lon 坐标组成。相反,它们看起来像这样:
POLYGON ((2794650.259300001 819469.0967999995, 2794601.180299997 819320.3825999983, 2794595.038099997 819303.2646000013, 2794581.846100003 819266.4985000007, 2794552.451700002 819177.5449000001, 2794539.257799998 819142.9415000007, 2794490.202399999 819013.9316000007, 2794461.8829 819006.0326999985, 2794333.362800002 818970.185899999, 2794287.639799997 818974.6688000001, 2794223.908 818980.9173000008, 2794210.812299997 818904.4486999999, 2794187.823399998 818901.436999999, 2794164.019500002 818896.5203000009, 2794128.538500004 818896.0044, 2794122.643299997 818895.9186999984, 2794077.665700004 818894.2122999988, 2794066.248400003 818891.7342999987, 2794046.369499996 818886.5003999993, 2794006.863200001 818880.5144000016, 2793988.908100002 818882.2074999996, 2793965.905199997 818887.1242000014, 2793955.3869 818892.3366999999, 2793903.004799999 818932.752799999, 2793796.985100001 818913.691399999, 2793741.294 818906.6301999986, 2793596.247299999 818889.4554999992, 2793571.957000002 819033.999499999, 2793552.235299997 819034.7226999998, 2793527.926200002 819036.2868999988, 2793444.091899998 818973.02, 2793442.978699997 819118.5722999983, 2793437.997699998 819133.6957999989, 2793430.251699999 819144.4745000005, 2793414.9217 819147.9660999998, 2793334.550800003 819163.0062999986, 2793290.008699998 819170.9169000015, 2793213.590499997 819263.4613000005, 2793110.11 819265.5681000017, 2793117.498800002 819308.4505000003, 2793146.486199997 819475.7197000012, 2793186.218999997 819462.5135999992, 2793249.972900003 819441.3235000001, 2793345.965300001 819414.0322999991, 2793436.257799998 819398.3966999985, 2793517.804700002 819384.2754999995, 2793565.4133 819377.8266999982, 2793601.6972 819374.2901000008, 2793787.7729 819356.7437000014, 2793841.170500003 819343.5784999989, 2793848.679399997 819336.9222000018, 2793862.701300003 819415.7888999991, 2793896.867299996 819558.6755999997, 2793912.430100001 819623.6581000015, 2793934.3768 819672.3953000009, 2793959.285499997 819765.1700000018, 2793964.056900002 819787.6761000007, 2793984.413400002 819883.6871000007, 2793997.486699998 819948.0406999998, 2794004.954099998 819981.5982000008, 2794111.821699999 819973.7314999998, 2794230.936700001 819964.9633999988, 2794347.152999997 819955.9384000003, 2794343.185599998 819899.5188000016, 2794458.9071 819890.1013999991, 2794764.265699998 819868.1314000003, 2794762.4494 819852.9858999997, 2794736.8922 819766.9114000015, 2794727.679099999 819735.4631999992, 2794672.272100002 819545.7978999987, 2794650.259300001 819469.0967999995))
无论如何我都尝试进行空间连接,但没有成功。我也尝试过使用 CartoDB 映射这些多边形,但它们没有显示出来。我不确定我在处理什么,希望得到一些帮助:
(1)这里的坐标点是什么。 (2) 如何让它们到达 lat/lon 以便空间连接可以工作
谢谢!顺便说一下,我正在使用 geopandas 和 Python 中的 shapely 来处理这个问题。
也许不言而喻,但要在空间上连接两个数据集,它们需要位于同一坐标系中。 Latitude/longitude 是一些地理坐标系中的坐标(而且不止一个,所以一定要知道是哪一个!)。
Shapefile 可以包含各种坐标系中的坐标。通常有一个 .prj
文件与描述坐标系信息的 shapefile 一起分发。
查看您的数据,我猜它是在某个投影坐标系中以米为单位测量的东距和北距。因此,在您可以在空间上连接地理坐标系中的数据之前,您首先需要 unproject 数据(从投影或平面坐标系到球体坐标系),然后可能执行a 基准偏移(针对不同地理坐标系之间的差异进行调整)。
我不知道 geopandas 或 shapely,但我知道 proj4
库有很好的 Python 绑定并且可以执行这些操作。但无论哪种方式,您都需要 .prj
文件中的数据。