그것은 어리석은 질문처럼 보이지만 그에 대한 명확한 대답을 찾을 수 없습니다.
그것은 어리석은 질문처럼 보이지만 그에 대한 명확한 대답을 찾을 수 없습니다.
답변:
이 매끈한 형상을 계산하는 직교 평면 시스템을 사용한다 (거리 = 유클리드 거리)
Shapely는 좌표계 변환을 지원하지 않습니다. 둘 이상의 피쳐에 대한 모든 작업은 피쳐가 동일한 데카르트 평면에 존재한다고 가정합니다.
GeoPandas 는 Fiona 를 사용 하여지도 제작 변환을 위해 모양 파일 (및 기타) 및 Pyproj 를 읽습니다 .
컬렉션의 벡터 데이터의 좌표 참조 시스템 (CRS)은 읽기 전용 crs 속성을 통해 액세스됩니다.
import fiona
c = fiona.open("test.shp")
print c.crs['units']
m
이 경우 Shapely를 사용하여 객체 사이의 거리 / 면적을 계산하는 단위는 미터입니다.
GeoPandas와 동일
import geopandas as gp
df = gp.GeoDataFrame.from_file('test.shp')
print df.crs['units']
m
즉, crs.unit = degree (예 : WGS84)로 작업하는 경우 모든 계산이 잘못되었습니다. 먼저 레이어를 다시 투영해야합니다 ( 지오 팬더에서 Eastings 및 Northings 투영을 WSG84로 어떻게 변환합니까? )
read_postgis
결과 데이터 프레임을 호출 할 때 좌표 인 인수 만 속성 으로 사용하여 좌표를 인수로 설정하고crs
있습니다. 속성이 없습니다crs['units']
. 요청을 시도하면 TypeError가 발생합니다.