Como criar um png de 4096x4096 a partir de um conjunto de dados de 1440x720 usando o GDAL?


8

Estou tendo um tempo para tentar fazer algo que parece bastante direto. Estou tentando pegar um arquivo netcdf em ftp://eclipse.ncdc.noaa.gov/pub/OI-daily-v2/NetCDF/2011/AVHRR-AMSR/ e transformá-lo em um png de 4096x4096 para que eu possa colocar lado a lado para uso com mapas do Google. Eu tenho usado os seguintes comandos, mas parece sempre criar áreas em branco nas bordas leste e oeste:

/usr/local/bin/gdal_translate -a_srs EPSG:4326 -outsize 4096 4096 -a_ullr 0 90 360 -90 NETCDF:"input.nc":sst -of netCDF output.nc
/usr/local/bin/gdaldem color-relief output.nc -b 1 -alpha colorscale.txt -of PNG output.png
/usr/bin/convert output.png -transparent #FFFFFF output.png

Estou apenas abordando isso da maneira errada? Estou usando as ferramentas erradas?

FWIW - gdal_translate é v1.8.0

Desde já, obrigado.

ATUALIZAÇÃO: "Resposta" abaixo de Dija - minha colega - é na verdade uma resposta aos comentários sobre a pergunta em si.

ATUALIZAÇÃO Adicionou acidentalmente uma resposta em vez de um comentário. Movendo aqui.

Eu pensei em pesar aqui. Estou trabalhando nessa questão há algum tempo. Eu tentei muitas iterações do processo. Dimensionei essas imagens para 4096x4096, pois na verdade ela cria uma imagem melhor do que se não estivesse. Ou seja, se eu deixar a imagem em seu tamanho nativo, 1440x720 eu obtenho uma lacuna maior no meridiano principal (para este conjunto de dados) e no meridiano 180º para outros conjuntos de dados. Escalei a imagem de saída para um múltiplo de 256 (para se encaixar melhor no google) e obteve vários resultados.

Se eu escalar para 1536x768, a lacuna será exibida à direita do meridiano 0. Se eu escalar para 1280x640, é para a esquerda. Se eu deixar em paz, é praticamente o que divide.

Tirei a imagem de base que gdaldem cospe, corte ao meio e combine as bordas ... elas se alinham perfeitamente. Isso me leva a pensar que há algo estranho acontecendo com o gdal2tiles.py

Eu escrevi meu próprio ladrilhador que estou me preparando para liberar nossas imagens para ver se a lacuna permanece.

Vou montar algumas capturas de tela para mostrar do que estou falando, como a lacuna e relatar o que meu ladrilhador faz.

Obrigado por qualquer entrada que você possa ter. É apreciado.

ATUALIZAÇÃO 2 Corri o maptiler que escrevi contra a varredura original e funciona bem sem uma lacuna. gdal2tiles.py parece ser o problema. Introduz uma borda transparente no último bloco que toca o 180º meridiano.


Algo precisa dar quando você converte uma imagem com proporção 1: 2 em uma com proporção 1: 1: ocorre o recorte, obtém bordas em branco para preencher o espaço vazio ou é necessário um alongamento 2: 1.
whuber

Executei os mesmos processos em um dos arquivos do site FTP que você forneceu e tenho uma imagem que se encaixa corretamente. Você pode fornecer uma captura de tela do efeito que está obtendo? O efeito ocorre após a etapa gdaldem ou a etapa de conversão?
precisa

Ah, sim, como diz o whuber, sua proporção está incorreta se você usar os parâmetros fornecidos no texto, mas os parâmetros da linha de comando, que são os que eu usei, têm a proporção correta.
precisa

Dito isto, tentei criá-lo como um 4096 x 4096 e o ​​QGIS o carrega sem problemas. Além disso, o carregamento de ambas as versões no GIMP mostra um mapa que vai até as bordas esquerda e direita.
precisa

@whuper - Absolutamente, concordo plenamente. Sei que, ao transformar um conjunto de dados 1: 2 em uma imagem 1: 1, você está quase invalidando os dados. Dito isto, minhas expectativas eram obter um resultado essencialmente de 2: 1, em vez de um espaço vazio. Estou à mercê dos requisitos de negócios estabelecidos diante de mim :( Oh, o que faremos para uma imagem bonita. @MerseyViking - Interessante, deixe-me voltar para você sobre isso. e assim que eu preciso para obter a sua entrada Obrigado pelo feedback embora..
malonso

Respostas:


2

O gdal_grid possui parâmetros que permitem designar a extensão das coordenadas da sua varredura de saída.

gdal_grid -txe [xcoord1] [xcoord2] -tye [ycoord1] [ycoord2]

onde a coordenada inferior esquerda seria (xcoord1, ycoord1) e a parte superior direita seria (xcoord2, ycoord2)

O GDAL interpolará seus dados de acordo com as extensões de saída

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.