Buffer em metros / km usando camadas WGS84 usando QGIS

12

Estou usando o QGIS 1.7.4-Wroclaw e trabalhando com uma camada SHP no WGS84. Quero fazer um buffer para um certo número de quilômetros dessa camada usando a ferramenta de buffer ftools.

Entendo que a ferramenta de buffer sempre usa as unidades de camada, que para WGS84 são graus decimais. Todos sabemos que os graus não se convertem consistentemente em metros, então como devo fazer meus amortecedores?

É necessário converter os shapefiles em um CRS diferente que usa nativamente medidores?

Se sim, como faço para escolher um?

Evan
fonte
Quais são as extensões do seu shapefile? Precisamos dessas informações para recomendar um CRS.
precisa saber é
Sim, você terá que reprojetar o Shapefile primeiro (usando a ferramenta "Reproject layer" do fTools, por exemplo). Qual projeção é melhor depende de onde está sua área (longitude / latitude) e de quão grande é.
Jake
Obrigado, @Jake e @nhopton! Estou armazenando buffer de vários pontos no norte de Taiwan, mas os buffers estarão na faixa de 1000 a 2000 km (cobrindo cerca de metade da China e de Taiwan).
Evan
1
Esse mapa é definido com um sistema de coordenadas geográficas (latitude / longitude), mas a extensão do mapa sugere que ele é realmente um sistema de coordenadas projetado (por exemplo, Mercator). Nesse caso, os resultados das medições de linha ou área estarão incorretos. Para corrigir isso, defina explicitamente um sistema de coordenadas do mapa apropriado usando o menu Configurações: Propriedades do projeto.
Ger
Na verdade, é apenas um arquivo Natural Earth recortado, por isso é apenas no WGS84.
Evan

Respostas:

12

Para esta aplicação, eu usaria uma projeção Equidistante Azimutal centralizada no meio dos seus pontos de origem. Essa projeção tem o bom recurso de todas as distâncias radiais ao redor do centro da projeção serem precisas.

Essa projeção em particular não faz parte das projeções padrão do QGIS. Você pode definir o seu próprio usando Settings / Custom CRS com a sequência de comandos +proj=aeqd +lat_0=24.5 +lon_0=121.5, mas, infelizmente, as projeções personalizadas não podem ser usadas pela ferramenta fTools Reprojection. Em vez disso, você pode transformar seu conjunto de dados na linha de comando usando o comando

ogr2ogr points_reprojected.shp points.shp -t_srs "+proj=aeqd +lat_0=24.5 +lon_0=121.5"

Em seguida, você pode fazer o buffer no QGIS usando o points_reprojected.shpshapefile.

Um buffer de 2000 km em torno de um ponto no norte de Taiwan parece um círculo em uma projeção ortográfica centralizada no ponto:

... e esmagado em WGS84:

Jake
fonte
Obrigado - reprojetando o Azimutal Equidistant e o buffer funcionou lindamente! Na verdade, eu já estava usando essa projeção para projeção instantânea, só não percebi que teria as unidades necessárias. Mas não precisei usar a linha de comando para reprojetar: Camada> Salvar como ... fez o truque (depois de definir o CRS personalizado).
Evan
@Evan: Fico feliz em ouvir isso! Se você considerar sua pergunta respondida, poderá marcá-la como tal, clicando na marca de seleção ao lado da resposta
Jake
1

Hum, interessante. Na primeira tentativa, acho que geraria os (enormes) buffers como KML. Você pode fazer isso aqui:

http://www.thesamestory.com/kmlcircle/

Você precisará inserir o lat / lon para um ponto e uma distância do buffer. O que você recebe de volta é um arquivo KML que contém o círculo. Veja isso no Google Earth e, se estiver tudo bem, carregue-o no QGIS.

insira a descrição da imagem aqui

Nhopton
fonte
1
Infelizmente, o QGIS Lisboa não gosta do arquivo kml gerado.
precisa saber é
O QGIS não gosta do nome do arquivo. Tente alterá-lo para (digamos) "circle1.kml". Mas eu deveria ter verificado. N
nhopton
Ok, carregue o arquivo no Google Earth e salve como KML. Em seguida, altere o nome do arquivo do nome padrão. ogr2ogr também converte o arquivo para SHP muito bem. N
nhopton
A solução de Jake acabou funcionando perfeitamente para mim, mas também poderia ser uma boa maneira de fazê-lo. Vou manter isso em mente. Obrigado!
Evan