QGIS e mapeamento de varredura na camada 'Sem costura'

8

Eu gostaria de usar o mapeamento básico da Pesquisa sobre Ordnance no QGIS. Gostaria de configurar algo como uma tabela perfeita no MapInfo. Eu acho que o equivalente no QGIS é uma tabela de varredura virtual. Os arquivos estão no formato tif como estavam quando eu os baixei.

Eu construí um VRT, mas parece lento para carregar quando abro a camada. Eu também tentei criar pirâmides para os dados e isso não parece acelerar muito.

Existe uma maneira de acelerar isso? Estou esquecendo de algo? Existem bons recursos sobre as etapas a serem tomadas para preparar dados rasterizados para uso no QGIS?

Seria melhor começar a carregar essas informações em um banco de dados PostGIS com o PostGIS Raster instalado?

James S
fonte
Nos últimos dias, criei dois bancos de dados Rasterlite usando imagens rasterizadas do OS OpenData. Cada uma cobria um quadrado de grade de 100 x 100 km do sistema operacional, o primeiro (Vector Rasters do distrito de mapas) usando cem blocos e o segundo (Streetview) usando quatrocentos blocos. Eu poderia convencê-lo a fazer isso se estiver interessado. Usuario.
Nhopton 16/04
Isso seria realmente útil para obter instruções sobre como fazer isso. Estou pensando em adicioná-los a um banco de dados PostGIS quando atualizo meu PostGIS para 2.0.
James S
Certo, James, que conjunto de dados de varredura do SO você usará? Apenas para que eu possa adaptar as linhas de comando para se adequarem. Usuario.
N
Estou usando o VectorMap District Raster e também os rasters do StreetView. Principalmente interessado em VectorMap District, para começar.
James S

Respostas:

9

Os TIFs estão lado a lado? As imagens rasterizadas do OS Vector District que tenho não são. Para descobrir usando o QGIS, carregue uma das rasters e selecione Informações no menu Raster . Clique em OK e, em algum lugar após a projeção e os metadados, você verá uma linha semelhante a:Band 1 Block=4000x65 Type=Byte, ColorInterp=Palette

Se, como neste caso, o tamanho do bloco for a largura da imagem x algum número de linhas, a conversão para um TIF lado a lado pode proporcionar uma boa aceleração na maioria dos casos. Isso ocorre porque tendemos a olhar para áreas retangulares de uma imagem e evita que o QGIS precise carregar uma linha inteira de pixels apenas para descartar a maioria deles porque fica fora da vista.

Para fazer isso, use o item de menu Traduzir no menu Raster . Você pode converter um diretório inteiro ou apenas um arquivo por vez. A configuração da chave é a Creation Optionsque você deve ativar e digite TILEDo nome e YESo valor. O padrão é um tamanho de bloco de 256x256, o que deve ser bom para a maioria das finalidades, mas é possível especificar outros tamanhos adicionando BLOCKXSIZEe BLOCKYSIZEàs opções de criação e especificando o tamanho desejado.

Configurações para a ferramenta Traduzir


Termo aditivo

Ao agrupar suas imagens, você notará um aumento no tamanho do arquivo porque a largura e a altura da imagem provavelmente não são um múltiplo do tamanho do bloco. Portanto, com a varredura do OS Vector District, o tamanho efetivo será 4096x4096, um aumento de pouco menos de 5% do tamanho do arquivo, mas o QGIS e outras ferramentas o tratarão de forma transparente como 4000x4000.

MerseyViking
fonte
Seria benéfico construir pirâmides e colocar as imagens lado a lado?
James S
1
Sim absolutamente. Pode ser necessário tentar algoritmos diferentes, dependendo dos seus dados, alguns produzem melhores resultados que outros. "o mais próximo" geralmente é o pior, "cúbico" geralmente fornece bons resultados em um tempo razoável, mas você pode encontrar "spline cúbico" ou "lanczos" que produz melhores resultados. Sugiro que você experimente os diferentes algoritmos na mesma imagem e faça uma verificação visual simples no QGIS, para a que parecer melhor. Isso é uma coisa bastante subjetiva, no entanto.
MerseyViking
A resposta acima está um pouco desatualizada agora, as opções do menu estão agora em Raster > Miscellaneous > Build Virtual Raster, o Informationmenu também está em Misc.
2828 Alex
2

Carregando imagens rasterizadas do SO OpenData em um banco de dados Rasterlite.

Existem binários Rasterlite / Spatialite pré-compilados para Windows (32 e 64 bits), então eu segui essa rota.

Etapa 1, instale o software. Para Windows de 32 bits, acesse aqui: http://www.gaia-gis.it/gaia-sins/windows-bin-x86/ ou para Windows de 64 bits, acesse aqui: http://www.gaia-gis.it / gaia-sins / windows-bin-amd64 /

Faça o download (no mínimo) dos seguintes arquivos e descompacte-os em um diretório (usei C: / spatialite).

rasterlite_load-1.1c-win-xxx.zip

rasterlite_pyramid-1.1c-win-xxx.zip

rasterlite_topmost-1.1c-win-xxx.zip

spatialite-3.0.1-DLL-win-xxx.zip

spatialite_gui-1.5.0-stable-win-xxx.zip

Você também precisará de uma versão recente do sqlite3.dll (a que acompanha o OSGEO4W é muito antiga), obtenha-a aqui: http://www.sqlite.org/sqlite-dll-win32-x86-3071100.zip

Descompacte-o na pasta C: / spatialite.

Por fim, adicione C: / spatialite ao seu caminho.

Etapa 2, prepare as imagens rasterizadas. Rasters OpenData são TIFFs indexados com arquivos mundiais. Para serem carregados em um banco de dados Rasterlite, eles precisam ser convertidos em lote para geotiffs. Faça isso no QGIS, Raster -> Conversion -> Translate. Use o modo em lote e marque (mais importante) 'Expandir' e defina 'RGB'.

Etapa 3, carregue o diretório de GeoTIFFs em um banco de dados Rasterlite. Vá para o diretório C: / spatialite, clique em spatialite_gui e crie um novo banco de dados de spatialite no diretório que contém os GeoTIFFs; você pode chamar isso de 'vmd.sqlite', por exemplo.

Em seguida, abra uma janela de linha de comando no diretório que contém os GeoTIFFs e digite este comando:

rasterlite_load -d vmd.sqlite -T vmd -D. -i wavelet -q 25

Isso deve carregar todos os GeoTIFFs no diretório no vmd.sqlite, em uma tabela chamada 'vmd'. Vai demorar um pouco, mas o progresso será relatado.

Em seguida, construa pirâmides:

rasterlite_pyramid -d vmd.sqlite -T vmd -i wavelet -v

Quando isso terminar, coloque na parte superior:

rasterlite_topmost -d vmd.sqlite -T vmd -v

Deve ser isso, carregue o novo banco de dados Rasterlite no QGIS via Camada -> Adicionar Camada Raster.

Veja: www.gaia-gis.it/gaia-sins/rasterlite-docs/rasterlite-how-to.pdf para obter mais informações sobre o Rasterlite.

No fechamento. Você pode fazer o download de um dos meus bancos de dados do Rasterlite VectorMap District (VMD) aqui (cerca de 500 KB):

http://dl.dropbox.com/u/45121071/vmd.sqlite

Clique com o botão direito do mouse no link para baixar o banco de dados, não tente abri-lo em um navegador.

Ordnance Survey Rasters VMD são, obviamente, uma desgraça embaçada, desbotada, mal estilizada e mal identificada e você não pode fazer uma bolsa de seda da orelha de um porco. No entanto, o banco de dados deve carregar no QGIS sem problemas, fica melhor em cerca de 1: 10000. A renderização da tela QGIS também não é boa, mas você pode obter a melhor qualidade disponível exportando imagens do compositor de impressão.

Se você tiver problemas ao carregar o db, avise-me, ele funciona aqui no QGIS 1.7.4 (Win) e no Master (Ubuntu). Usuario.

Nhopton
fonte
obrigado por isso. Vou tentar isso nos próximos dias.
James S
Eu realmente sugiro que você baixe meu db de amostra primeiro, para ver o que você pode esperar. No QGIS, é possível brincar com isso para parecer um pouco menos desbotado. Usuario.
N
Apenas abri-lo usando Add Raster Layer. Isso realmente é muito rápido de carregar. Vou olhar para fazer isso então. Se não estiver usando rasterlite em seguida, usando PostGIS 2.0
James S
1

É possível criar uma estrutura VRT aninhada - uma VRT referenciando outros arquivos VRT. No momento, acredito que isso melhora significativamente a rapidez com que os blocos de varredura são exibidos para um conjunto de dados muito grande (ou seja, um conjunto de dados com um grande número de blocos separados).

Eu apenas criei arquivos VRT aninhados usando a ferramenta de linha de comando e estou começando a explorar o quão útil é. No momento, parece ser possível exibir blocos que, se referenciados por um único arquivo VRT, não são exibidos em um período de tempo razoável.

Não tenho informações sobre o quão bem isso funciona em comparação com outras opções, mas foi fácil de configurar devido a um processo conhecido para criar VRTs.

Rostranimin
fonte