openstreetmap.org에서 원시 OSM 데이터는 어떻게 처리됩니까?


12

누구나 www.openstreetmap.org에서 OSM 데이터를 처리하거나 렌더링하는 방법에 대한 통찰력을 제공 할 수 있습니까?

구체적인 예 ... 최근 미주리주의 한 지역에 대한 최근 planet.osm PostGIS 데이터 세트에서 데이터를 추출했습니다. OSM 데이터는 올바른 스타일을 사용하여 렌더링하기 전에 많은 청소가 필요합니다. 많은 수역이 올바르게 닫히지 않는 줄로 저장되어 있으므로 파란색으로 채워진 강 / 호수를 갖기 위해 FME를 사용하여 스냅하고 그 다음 다각형을 만들어야합니다.

여기 에서 동일한 데이터를 보면 수역이 예상대로 렌더링됩니다.

스냅이 필요한 모든 경우를 식별하는 데 문제가 있습니다 (예 : '내추럴'유형에 필요한 것과 허용 오차가 무엇인지). 또한 나는 모든 북미 지역을 다룰 때 결코 볼 수없는 많은 다른 데이터 문제가 있다고 생각합니다.

OSM 데이터를 다운로드하고 사용하는 모든 사람이 자체 정리 프로세스를 수행합니까? www.openstreetmap.org에서이 정리를 처리하는 방법을 아는 사람이 있습니까? 그들의 프로세스가 가장 잘 알려지고 가장 테스트 된 것처럼 보입니다.

모든 통찰력은 대단히 감사합니다.

편집 : 여기 내 워크 플로우에 대한 자세한 정보가 있습니다.

planet.osm 파일은 Osmosis를 사용하여 PostGIS에 pgsql 스키마로 다운로드되어로드됩니다. 그런 다음 Osmosis를 사용하여 PostGIS에서 OSM xml을 추출하여 작은 영역을 많이 추출합니다. 그런 다음 이러한 작은 xml 파일 각각은 FME 및 광범위한 기능 범주를 사용하여 Shapefile로 변환됩니다. 이 단계 (OSM xml-> Shme via FME)는 선을 다각형으로 변환하고 데이터에서 다른 정리를 수행해야합니다.

이 쉐이프 파일은 GeoServer를 통해 제공되며 GWC를 사용하여 캐시됩니다.


타일을 제공하고 싶습니까? 그렇다면, 시작하기위한 한 곳이 여기 있습니다 : switch2osm.org/serving-tiles
neuhausr

답변:


9

자, 이것에는 몇 가지 다른 각도가 있으며 처음에 데이터를 처리하는 방법이 확실하지 않기 때문에 개요를 제공 할 것입니다.

사용하여 - OSM 데이터를 소비하는 두 가지 방법이 있습니다 osm2pgsql를 , 이전 유틸리티가 지원하는 '스타일'과 차등 업데이트 및 Imposm , 파이썬 기반 스타일 시트 변환을 지원하는 새로운 파이썬 기반 시스템. 사람들이 처리를 할 때 많은 종류의 스크립트가 처리됩니다. 예를 들어, MapBox Streets (공개 / 직원)의 기반이 되는 스타일 시트 인 osm-bright에 대한 imposm 매핑 이 있습니다.

발생하는 상황에 대해 더 구체적으로 말하면, osm 관계를 올바르게 처리하지 못했을 가능성이 높습니다 . 데이터 모델에서는 여러 줄 문자열이 다각형을 형성 할 수 있습니다. Imposm 및 osm2pgsql과 같은 도구는 일반적으로 이러한 종류의 데이터 변환을 처리합니다.

OSM.org 자체가하는 일 : 편집은 '의미적인'Postgres 데이터베이스에 있으며 , osmosis 와 함께 PostGIS 데이터베이스로 지속적으로 가져 오고 Mapnik으로 렌더링됩니다 . 데이터베이스와 맵 렌더링 사이에는 수동 정리 단계가 없습니다. 두 가지가 고도로 결합되어 있고 맵이 최신 상태이기 때문입니다.


정보 주셔서 감사합니다. 내 편집 내용을 살펴보고 이것이 내 옵션에 어떤 영향을 미치는지 알려 주시겠습니까? 이 영역을 만들기 위해 Imposm 또는 osm2pgsql을 사용하는 아이디어가 마음에 들지만 PostGIS에는 노드와 웨이 테이블 만 있고 영역이 없다는 것을 확신하기 때문에 PostGIS에서 다른 (pgpgsql이 아닌) 스키마가 필요하다고 가정합니다. 아마도 PostGIS로 영역을 가져간 경우 OSM xml로 추출 할 때 영역을 다시 잃을 것입니까? PostGIS에 데이터를 다르게 저장 한 다음 어떻게 든 Shp로 직접 추출해야합니까?
tomfumb

5

일반적으로 원본 OSM 데이터가 위상 적으로 구성되므로 예를 들어 다각형 (= OSM 방식)이 노드 인덱스 목록을 통해 정의되고 좌표에 직접적으로 지정되지 않으므로 "스냅 핑"이 필요하지 않습니다. 따라서 시작 인덱스와 끝 인덱스가 동일하면 닫힌 다각형으로 간주됩니다. 그렇지 않으면 도로와 같은 폴리 라인입니다.

더 큰 몸체 (귀하의 오세이지 강과 같은)는 일반적으로 모양과 구멍 (있는 경우)을 정의하는 일련의 OSM 방식 (선 스트링)으로 구성된 OSM 다중 다각형을 통해 정의됩니다 . OSM 다중 다각형에는 몇 가지 잠재적 인 문제가 있습니다.

  1. 그것들을 정의하는 방법은 여러 가지가 있습니다 (사양을 살펴보십시오). 다른 사람들은 다른 규칙을 사용합니다.
  2. 규칙은 암시 적입니다. OSM 위키 문서를 읽고이를 처리하는 방법을 이해해야합니다.
  3. OSM 데이터 추출을 사용하는 경우 다중 다각형의 일부 부분이 지리적으로 미주리 주 내에 있지 않기 때문에 누락 될 수 있습니다. 따라서 수역 다각형을 닫는 방법을 찾아야합니다 (상태 경계를 사용하여 자르거나 일부 GUI 도구를 사용하여 수동으로 닫음).

예, 다른 데이터 문제도 있습니다. 주로 OSM 매핑의 본질에서 비롯됩니다. 다른 사람들이 다르게 매핑하는 방식과이를 수행하는 방법에 대한 기본 규칙은 없습니다. 그것은 다소 자기 조직적인 무정부 상태입니다.)

나는 스스로 osm2pgsql에 의해 생성 된 평평한 OSM 데이터를 다루지 않는다. 나는 항상 OSM XML 형식의 원래 토폴로지 데이터로 시작하고 그것을 필요한 형식으로 처리하기위한 코드를 작성한다. 그러나 다시 렌더링에 Mapnik을 사용하지 않으므로 아마도 소수에 속할 것입니다.


1

osm2pgsql의 원래 데이터베이스 체계를 사용하는 경우 관련 osm 데이터 모델 '폐쇄 방식'및 '다중 다각형 관계'를 다각형으로 변환하고 'planet_polygon'이라는 테이블에 넣습니다. 방법과 노드는 'planet_line'및 'planet_point'에 있습니다. Quantum GIS를 통해 이러한 테이블에 액세스하고 shapefile로 직접 내보낼 수 있습니다. Quantum GIS 내부에서 SQL 쿼리를 수행하여 데이터를 필터링 할 수도 있습니다.

나는 삼투를 사용하지 않을 것입니다. osm2pgsql처럼 다각형 처리 기능이 없습니다. 삼투는 제공자가 처리하는 것과 같은 방식으로 데이터를 저장합니다 (노드, 방식 및 관계). 렌더링에 적합한 데이터베이스 체계가 아닙니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.