<\/HEAD>
Você também luta com a quantidade cada vez maior de rasterdata? Nós sim! Por exemplo, com os dados AHN: o mapa de elevação atual da Holanda. Como armazenamos isso da forma mais custo-efetiva possível, mas ao mesmo tempo oferecemos isso rapidamente e de forma escalável como um serviço web. Esses são desafios interessantes para trabalhar, mas também educativos e trazem novos insights. Eu gosto de compartilhar os insights adquiridos através deste artigo.<\/SPAN><\/P> <\/SPAN><\/P>O Actueel Hoogtebestand van Nederland (AHN) tem várias edições. Atualmente, o governo holandês está adotando a 3e<\/SUP> versão: AHN3 (ao longo de vários anos). Várias áreas da Holanda já estão disponíveis e nos próximos anos as áreas restantes serão incluídas. A cada ano, mais dados são adicionados e antes que você perceba, você passa de muitos GBs de dados para TBs.<\/SPAN><\/P> <\/SPAN><\/P>Estávamos procurando uma maneira inteligente de armazenar esses rasters do AHN. Em nossa busca, encontramos o Meta Raster Formaat (MRF). Este é um formato raster criado pela NASA, que a Esri usa no contexto de servir rasters na web e via infraestrutura em nuvem.<\/SPAN><\/P> <\/SPAN><\/P>No MRF, vários componentes do raster tradicional são divididos em arquivos separados e os dados são organizados logicamente. Através de um arquivo índice, os tamanhos e a organização geométrica dos pixels raster são armazenados e um arquivo de metadados fornece as informações principais, como o número de linhas e colunas, o tipo de dado, a configuração dos blocos (tiling) e projeção. Isso significa que não é necessário ler ou enviar o arquivo raster inteiro. Essa técnica também permite separar esses diferentes tipos de arquivos e colocá-los em volumes de armazenamento diferentes. Muito útil para escalabilidade. Os arquivos índice e metadados podem ser colocados em um disco SSD rápido, por exemplo, enquanto os arquivos de dados ficam em um disco mais lento. O arquivo índice permite determinar rapidamente quais arquivos de dados precisam ser consultados e o arquivo de metadados indica como interpretá-los ou posicioná-los no espaço. Isso garante que a performance seja mantida, mas que nem todos os arquivos precisem estar em volumes de armazenamento rápidos, economizando custos.<\/SPAN><\/P> <\/SPAN><\/P>
<\/SPAN><\/P><\/P>Além do formato de arquivo MRF, também usamos uma forma relativamente nova de compressão. Na compressão, os arquivos geralmente ficam menores para armazenamento, mas para servir dados pela web, isso significa que os dados precisam ser descompactados toda vez para uso. Técnicas atuais como JPEG2000, PNG, Deflate e LZW podem ser usadas bem em combinação com MRF, mas têm desvantagens em termos de redução de volume ou uso da CPU. A Esri desenvolveu um novo método de compressão chamado Limited Error Raster Compression (LERC). LERC foi desenvolvido especificamente para facilitar compressão/descompressão rápida e baixo uso da CPU. LERC pode ser usado tanto para 'Lossless' (onde os pixels raster não são alterados) quanto para 'Lossy' (onde os pixels raster são ajustados para otimizar a compressão). Se a tolerância for definida como zero, aplica-se compressão lossless; se for maior que zero, aplica-se compressão lossy. Aplicamos esta última ao AHN com uma tolerância de 0,01 m. Isso mantém o valor de cada célula bem dentro da variação estocástica (5 cm para AHN2/3), mas ainda assim alcançamos uma compressão aproximadamente entre fator 5-7 comparado ao GeoTIFF sem compressão e fator 3-4 comparado ao GeoTIFF com compressão LZW. Claro que é possível tornar os dados ainda menores, mas então os valores dos pixels variariam e isso não é desejado para o AHN.<\/SPAN><\/P> <\/SPAN><\/P>Resumindo... a tabela a seguir deixa claro o ponto sobre armazenamento:<\/SPAN><\/P> <\/SPAN><\/P> <\/P><\/TD>Armazenamento como GeoTIFF (sem compressão)<\/P><\/TD>Armazenamento como GeoTIFF <\/SPAN><\/P>com compressão LZW<\/SPAN><\/P><\/TD>Armazenamento como MRF com compressão LERC<\/P><\/TD><\/TR>AHN2 i<\/P><\/TD>< Pstyle= "margin
in;margin-bottom :.0001 pt">< SPAN >408< \/ SPAN >  ;GB< \/ P >< \/ TD >< TDstyle= "border-top:none;border-left:none;border-bottom :1 pt solid windowtext;border-right :1 pt solid windowtext;padding
in5 .4 pt;height :25 px;width :175">< Pstyle= "margin
in;margin-bottom :.0001 pt">< SPAN >272 GB  ;< \/ SPAN >< \/ P >< \/ TD >< TDstyle= "border-top:none;border-left:none;border-bottom :1 pt solid windowtext;border-right :1 pt solid windowtext;padding
in5 .4 pt;height :25 px;width :210">< Pstyle= "margin
in;margin-bottom :.0001 pt">72,7 GB< \/ P >< \/ TD >< \/ TR >< TRstyle= "height :25 px">< TDstyle= "border-right :1 pt solid windowtext;border-bottom :1 pt solid windowtext;border-left :1 pt solid windowtext;border-image :initial;border-top:none;padding
in5 .4 pt;height :25 px;width :245">< Pstyle= "margin
in;margin-bottom :.0001 pt">AHN2 r< \/ P >< \/ TD >< TDstyle= "border-top:none;border-left:none;border-bottom :1 pt solid windowtext;border-right :1 pt solid windowtext;padding
in5 .4 pt;height :25 px;width :175">< Pstyle= "margin
in;margin-bottom :.0001 pt">< SPAN >465  ;GB (estimado)< \/ SPAN >< \/ P >< \/ TD >< TDstyle= "border-top:none;border-left:none;border-bottom :1 pt solid windowtext;border-right :1 pt solid windowtext;padding
in5 .4 pt;height :25 px;width :175">< Pstyle= "margin
in;margin-bottom :.0001 pt">< SPAN >316 GB< \/ SPAN >< \/ P >< \/ TD >< TDstyle= "border-top:none;border-left:none;border-bottom :1 pt solid windowtext;border-right :1 pt solid windowtext;padding
in5 .4 pt;height :25 px;width :210">< Pstyle= "margin
in;margin-bottom :.0001 pt">97,1 GB< \/ P >< \/ TD >< \/ TR >< TRstyle= "height :50 px">< TDstyle= "border-right :1 pt solid windowtext;border-bottom :1 pt solid windowtext;border-left :1 pt solid windowtext;border-image :initial;border-top:none;padding
in5 .4 pt;height :50 px;width :245">< Pstyle= "margin -bottom :.0001 pt">AHN3 i (cerca de70% completo para NL)< \/ P >< \/ TD >< TDstyle= "border-top:none;border-left:none;border-bottom :1 pt solid windowtext;border-right :1 pt solid windowtext;padding:o in5 .4 pt;height50px;width175">< Pstyle= "margin:o in;margin-bottom:.0001 pt">< SPAN >391  ;GB (estimado)< \/ SPAN >< \/ P >< \/ TD >< TDstyle= "border-top:none;border-left:none;border-bottom :1 pt solid windowtext;border-right :1 pt solid windowtext;padding:o in5 .4 pt;height50px;width175">< Pstyle= "margin:o in;margin-bottom:.0001 pt">< SPAN >241 GB< \/ SPAN >< \/ P >< \/ TD >< TDstyle= "border-top:none;border-left:none;border-bottom :1 pt solid windowtext;border-right : 1pt solid windowtext; padding: 0in 5.4pt; height: 50px;" width="175">276 GB
61,1 GB
Para mais informações sobre MRF e LERC, veja também o artigo de Peter Becker, Gerente de Produto para Imagens na Esri Inc.