Baixando dados do OpenStreetMap

43

Existe uma maneira simples de baixar dados do OpenStreetMap (OSM)?

Usando a América do Norte como exemplo, percebo que o Cloudmade (o Cloudmade não fornece mais downloads do OSM) e o Geofabrik ( http://download.geofabrik.de/osm/north-america/ ) fornecem downloads, mas os arquivos são enormes (0,5 GB - 4 GB). Também tentei usar a barra de ferramentas QGIS-OSM, mas não tive muita sorte com isso, pois, semelhante ao site do OSM, a área que você pode selecionar é muito pequena. A quantidade de dados que eu quero baixar está no nível da cidade.

Por fim, é fácil usar dados OSM? Se eu optar por fazer o download, OpenStreetMap XML Datanão consigo abrir os arquivos osm.xml usando o QGIS (mesmo usando a função de importação da barra de ferramentas QGIS-OSM). Gostaria de saber se estou perdendo uma maneira mais óbvia de lidar com os dados.


Eu só quero salientar o clone StackExchange muito útil para obter ajuda com problemas relacionados ao OSM! http://help.openstreetmap.org/

djq
fonte
11
mas os arquivos são enormes ?? (0.5GB - 4GB) não no mundo do GIS - 5TB + está ficando normais
Mapperz
desculpe - enorme para a minha máquina insignificante. Não tanto 0.5gb, mas 4gb é incontrolável para mim!
DJQ
Explorando isso um pouco mais, acho que os dados fornecidos pela geofabrik são mais abrangentes que os feitos na nuvem.
DJQ
11
@ Nathanus Confesso que acabei de me inscrever ... É verdade, mas realmente está focado em todos os pequenos detalhes sobre o OSM, muitos dos quais relacionados à programação e não específicos ao GIS. Embora existissem subsites, seria perfeito. As fontes aqui são muito mais nítidas!
djq 04/04
11
@djq o site de downloads do CloudMade está retornando um 404 agora - ele pode ter sido descontinuado ?
Stephen Lead

Respostas:

33

JOSM

Talvez a resposta mais fácil para as duas partes da sua pergunta seja usar o JOSM. O editor Java OpenStreetMap . É fácil baixar dados e fácil "usar" dados.

Para fazer o download, o JOSM fornece uma interface simples para permitir que você selecione uma área retangular para fazer o download, mas faz o download por meio da API de edição. Isso rejeitará qualquer solicitação que seja muito grande e, se for um pouco grande, passará muito tempo pensando nisso. Geralmente, uma cidade inteira é muito grande, mas você pode obter uma boa parte dos dados solicitando várias áreas retangulares.

Para "usar" os dados, o JOSM permite ver os dados e dar uma boa olhada em todas as tags. O recurso de pesquisa é bastante poderoso, permitindo que você selecione elementos com tags específicas, mas além disso realmente depende do tipo de "uso" que você tem em mente. Você pode configurar a maneira como o JOSM exibe os dados até certo ponto, mas para mapas com boa aparência, você provavelmente desejaria ver as ferramentas de renderização projetadas para trabalhar com arquivos OSM. Você também pode analisar a conversão, por exemplo, para shapefile , mas lembre-se de que os dados são ... diferentes ... do que você pode estar acostumado, portanto essa conversão é sempre um pouco com perdas.

Como um aparte ... Embora seja um visualizador de dados razoavelmente bom, o objetivo principal do JOSM é ser um editor do OpenStreetMap . Basta clicar em 'enviar' para enviar as alterações de volta ao OpenStreetMap (você precisará criar uma conta no OpenStreetMap). Se você ainda não experimentou a edição do OpenStreetMap, deve fazê-lo . Qualquer pessoa com um interesse passageiro nos mapas deve tentar. Adicione seu restaurante local ao mapa ou algo assim. É a única maneira de obter um entendimento adequado do OpenStreetMap e é divertido!

Arquivos maiores

E se uma cidade for muito grande para carregar no JOSM? Existem outras opções (a seguir), mas quando você lida com essa quantidade de dados, não há como escapar do fato de que será um pouco difícil de "usar". Você está realmente fora do domínio das pequenas ferramentas divertidas da GUI e do GIS de big data. A entrada mais fácil para isso (o que não é tão fácil) provavelmente seria carregar um arquivo .osm grande no banco de dados PostGIS usando osm2pgsql e, em seguida, use as ferramentas da área de trabalho GIS para visualizá-lo.

Extratos da cidade

Este serviço download.bbbike.org oferece downloads prontos para algumas cidades do mundo.

Osmose

Se você precisar de uma cidade diferente ou de uma caixa delimitadora diferente, precisará obter um dos downloads massivos que você mencionou (um trecho de país ou todo o planeta ) e depois extrair um pedaço dela.

a osmose é a ferramenta mais usada para isso. É uma ferramenta de linha de comando java que permite extrair uma caixa delimitadora na linha de comando unix com algo como isto:

bzcat downloaded.osm.bz2 | osmosis\
  --read-xml enableDateParsing=no file=-\
  --bounding-box top=49.5138 left=10.9351 bottom=49.3866 right=11.201 --write-xml file=-\
  | bzip2 > extracted.osm.bz2

Isso mostra como você normalmente evita encher seu disco com dados XML inchados, descompactando um arquivo .bz2, canalizando a saída em osmose e, em seguida, canalizando o XML resultante em um arquivo compactado novamente.

Portanto, talvez isso não esteja de acordo com a sua definição de "fácil", mas a osmose é uma ferramenta útil para entender se você está interessado em manipular grandes arquivos .osm. Você só precisa descobrir o comando certo! (bom tópico para outra pergunta, eu acho)

Harry Wood
fonte
Eu usei o JOSM - é muito bom. No entanto, estou interessado em grandes quantidades de dados, geralmente uma cidade inteira que não posso fazer nela.
DJQ
Estendi por resposta para entrar em algumas das opções para trabalhar com arquivos maiores. Infelizmente não é tão fácil, mas espero que ajude.
Harry Wood
Obrigado @Harry. Acabei usando osmosisno linux e funcionou bem. No momento, quero usar essa configuração no Win 7 e estou animado para ver que há um .exebzcat. A última vez que verifiquei não havia. Infelizmente, não parece haver uma maneira fácil de usar osm2pgsqlno Windows, caso contrário, seria a minha escolha ideal.
DJQ
24

Fazendo Download do OSM com QGIS on Demand

insira a descrição da imagem aqui

http://mapperz.blogspot.com/2009/11/openstreetmap-data-on-demand-with.html

Mapperz
fonte
2
+1 Uau, isso foi presciente! Você respondeu a esta pergunta 16 meses antes de ela aparecer :-).
whuber
11
Eu tenho um capacitor de fluxo pt.wikipedia.org/wiki/DeLorean_time_machine#Flux_capacitor
Mapperz
Apenas uma observação sobre isso - ele funciona na versão atual do QGIS que estou usando (1.7), mas permite apenas o download de áreas muito pequenas.
DJQ
citação do blog Mapperz "Os dados foram baixados diretamente dos Open Street Map Servers [dados mais atualizados]. ** Existem limites de área controlados pelos OpenStreetMap Servers, o plugin o alertará sobre esse problema, se necessário"
Mapperz
@celenius: o limite de tamanho existe porque este serviço da Web OSM é destinado a fins de mapeamento (por exemplo, download de pequenas áreas, edição e envio de volta). Usá-lo apenas para fins de leitura é geralmente desaprovado, porque sobrecarrega a infraestrutura OSM já sobrecarregada.
Igor Brejc
15

A resposta simples é não, não existe uma maneira rápida e fácil de fazer isso. Se você quiser dados no nível da cidade para toda a América do Norte, será um arquivo enorme. Se você deseja uma área menor, o CloudMade faz o estado por arquivos de estado. Você pode ver minhas anotações sobre o processo em http://ian01.geog.psu.edu/geoserver_docs/data/openstreetmap/osm.html, mas não me diverti muito. Comecei a olhar para osmose (http://wiki.openstreetmap.org/wiki/Osmosis), mas o tempo acabou antes que eu conseguisse fazer muito, mas pode ser uma solução para o seu problema.

Quanto ao uso de dados OSM, você pode optar pela abordagem não padronizada / neogeográfica e usar o mapnik etc. ou importar os dados para o PostGIS e fazê-lo funcionar em algumas ferramentas GIS adequadas.

Ian Turton
fonte
6

Fazendo eco à sugestão do @iant, se você está procurando apenas dados dos EUA, por que não considerar fazer o download de uma camada de estado por estado para sua área de interesse específica do Cloudmade ? E se sua área de interesse é apenas um par de dados de um estado, a maneira mais simples de usá-los seria fazer o download dos extratos de shapefile ( exemplo do estado de Oregon ) que você pode usar em praticamente qualquer programa GIS comum.

RyanDalton
fonte
Atualização: Cloudmade já se foi, mas hoje em dia o serviço de download geofabrik oferece downloads estaduais para os EUA aqui: download.geofabrik.de/north-america.html
Harry Wood
4

Provavelmente, a maneira mais fácil e limpa de baixar dados do OSM para a área arbitrária do mapa seria usar um dos servidores OSMXAPI . A API OSMXAPI deve ser usada para acesso somente leitura à região geográfica. dados (ao contrário da API OSM principal, orientada para a edição ). Também permite o download de áreas maiores que a API principal.

Uma das maneiras de acessar o OSMXAPI é usar a guia Exportar em http://www.openstreetmap.org/ (escolha o botão de opção "OpenStreetMap XML Data" ).

Igor Brejc
fonte
Você tem um servidor recomendado? Eu tentei alguns e obtive erros de tempo limite (eu acho). Desde então, tenho trabalhado com uma cópia do mundo inteiro em um computador local.
DJQ
Eu costumo usar este: open.mapquestapi.com/xapi/api/0.6 .
Igor Brejc
11
O OSMXAPI sempre foi um pouco estranho e hoje em dia não existe mais como serviço em execução em nenhum lugar. Equivalente mais próximo é o mais poderoso Overpass_API , mas há alguns outros sites que fazê-lo também extract.bbbike.org e export.hotosm.org
Harry Madeira
3

A empresa WeoGeo agora permite downloads gratuitos de dados do OpenStreetMap. Você pode esboçar um esboço da área para a qual deseja dados e um arquivo é gerado.

djq
fonte