Original Article: Examples of setting up the interactive Image Composite Explorer (ICE) Version 2 for your own use
Author: ssec.wisc.edu

Exemplos de configurar o Image Composite Explorer interativo (ICE) Versão 2 para seu próprio uso

página atualizada em 19/10/2006


Versão 2 - Lançado 24 de janeiro de 2005

Atualizado: junho de 2012 (versão 2.5)

Visão geral

O ICE foi desenvolvido para o Observatório da Terra da NASA na Universidade de Wisconsin-Madison, Centro de Ciência e Engenharia Espacial, por Tom Whittaker. É uma ferramenta que pode ser usada para permitir que as pessoas explorem imagens e dados de satélite usando um navegador da Web. Ele é projetado para ser flexível dentro do propósito pretendido, e pode ser facilmente configurado usando parâmetros HTML simples, conforme descrito abaixo.

O ICE é codificado em Java usando os padrões da versão 1.1, de modo a serem executados como um applet em navegadores comuns. Se seus usuários possuírem computadores da Apple com o OS-9, no entanto, eles precisarão usar o Internet Explorer e o Apple MRJ (tempo de execução de Java).

Esta é a Versão 2 da ferramenta ICE.


End-user environment

O ICE é executado através de um navegador web. Foi codificado para a API Java 1.1. O ICE foi testado e mostrado para ser executado nos seguintes ambientes:
  • Windows 98 + Netscape 4.77
  • Windows NT + Netscape 4.79
  • Windows NT + Netscape 6.2
  • Windows 2000 + Internet Explorer 5.5
  • Windows 2000 + IE 5.5 + Java Plug-in
  • Windows 2000 + Netscape 4.79
  • Windows 2000 + Netscape 6.2
  • Windows 2000 + Mozilla + Java plug-in
  • Windows 2000 + Opera 6
  • Windows XP + Netscape 6.2
  • Windows XP + IE 6.0
  • Windows XP + Mozilla 1.7
  • Windows XP + Firefox
  • RedHat Linux + Netscape 4.7
  • MacOS 9.2.2 + IE 5.1 + MRJ 2.2.5 (no iMac)
  • MacOS-X + Mozilla, Firefox, IE, e Safari (alguns problemas com o Safari)
Em todos os ambientes Windows, é melhor usar o Java Java Plug-in. Se você tiver dificuldades, consulte esta página para maiores informações.

É altamente recomendável que você use um esquema de codificação de imagem de 8 bits, como o GIF. Todas as operações de combinação de matemática e cor são feitas com cores de 8 bits. Além disso, o uso de outros esquemas de codificação (JPG, PNG) geralmente resulta em usar 4 vezes mais memória para o armazenamento de imagens que podem causar problemas com erros "Out of Memroy" em algumas situações

Modos de configuração

O ICE possui quatro modos básicos de operação:
  1. Color (RGB) combining
  2. Combinações aritméticas
  3. Animações
  4. Mostrando 3 imagens
  5. Mostrando uma única imagem
Em cada um desses modos, um conjunto comum de ferramentas é fornecido --
  • Escolher o botão de opção "Selecionar Região" permite a seleção de uma região retangular "arrastando" o ponteiro do mouse (segurando o botão esquerdo enquanto move o ponteiro).
  • Uma vez que uma região é selecionada, uma série de diagramas podem ser produzidos em uma segunda janela que ajuda a analisar os dados. Para esses diagramas (como um gráfico de dispersão) que precisam de dois conjuntos de dados, o usuário pode selecionar as miniaturas clicando neles; Caso contrário, os dois primeiros serão selecionados automaticamente.

    Observe que, ao usar o modo "Mostrando 3 imagens", clicar em uma miniatura fará com que a imagem correspondente seja exibida no painel grande. Se você quiser fazer um diagrama de dispersão (ou historograma 3D) neste modo, o programa sempre usará o as duas últimas imagens visualizadas.

  • A sonda irá ler os valores das 3 imagens originais. Existem duas formas da sonda: uma leitura simples de 3 valores e um pequeno gráfico projetado para ser usado com imagens que representam uma seqüência de tempo. Se o parâmetro 'calibração' for fornecido, a leitura da sonda será nessas unidades. Se o parâmetro 'navegação' for fornecido, a leitura da sonda também conterá a latitude e a longitude do ponto.
  • O botão de opção "Zoom & Roam" ativa esse modo. O zoom é feito com um clique no botão esquerdo; O zoom é um clique direito. (O botão Restaurar zooms para fora todo o caminho.) O roaming é feito "arrastando" o ponteiro do mouse, razão pela qual esse modo e o modo 'Selecionar Região' são botões de rádio.

O que você precisa

Disponibilizar o ICE para seus usuários é tão fácil como colocar o arquivo "icecode.jar" em um diretório acessível em seu servidor Web. (Clique direito neste link e "Save As".) Você precisa disponibilizar suas imagens GIF ou JPEG no mesmo servidor (geralmente em um subdiretório de onde você coloca o código). Finalmente, você precisa inserir o applet start-up e os parâmetros no HTML para uma das suas páginas da Web nesse servidor (geralmente no mesmo diretório que o código - se não, então, certifique-se de usar o parâmetro "codepath =" na etiqueta do applet.)

Ah, e você precisa decidir qual o modo que deseja usar para uma situação particular - é o que os seguintes exemplos irão ajudá-lo

Exemplos dos modos

  1. Apresentar um color (RGB) operação de combinação, você inseriu o seguinte trecho no HTML da sua página:
    <applet archive="icecode.jar" code="ICE.class" height="660" width="750">
    <param name="filenames" value="band02.jpg,band06.jpg,band07.jpg">
    <param name="labels" value="0.87 micron,1.64 micron,2.13 micron">
    <param name="do_rgb" value="ok">
    <param name="bgcolor" value="xFFFF00">
    <param name="resolution" value="km,1.5,1.5">
    </applet>
    
    Clique aqui para ver este exemplo em ação.

  2. Apresentar um operação de combinação aritmética, você inseriu o seguinte fragmento no HTML da sua página (também adicionamos uma tabela de pesquisa de cores externa):
    <applet archive="icecode.jar" code="ICE.class" height="660" width="750">
    <param name="filenames" value="band02.jpg,band06.jpg,band07.jpg">
    <param name="labels" value="0.87 micron,1.64 micron,2.13 micron">
    <param name="do_math" value="ok">
    <param name="bgcolor" value="xFFFFFF">
    <param name="resolution" value="km,1.5,1.5">
    <param name="colortable_filenames" value="aerosol_darksky.act,fasir_ndvi.act,atmospheric_profile_temp.act">
    <param name="colortable_labels" value="Dark Sky, NDVI, Profile Temperature">
    </applet>
    
    Clique aqui para ver este exemplo em ação.

    E para ilustrar "pre-computing" uma combinação particular, este exemplo também inclui o seguinte parâmetro:

    <param name="initial_math" value="1.0, 2, 1.0, 0, 0.0">
    
    que inicialmente fará com que a primeira imagem seja subtraída e que a terceira não seja incluída na computação.

    E para ilustrar o uso de operações matemáticas com apenas duas imagens, o exemplo aqui é o mesmo que o anterior, exceto para esses três parâmetros:

    <param name="filenames" value="band02.jpg,band06.jpg">
    <param name="labels" value="0.87 um,1.64 um">
    <param name="initial_math" value="1.0, 2, 1.0">
    
  3. Apresentar um animação de três imagens, você colocaria o seguinte fragmento no HTML da sua página:
    <applet archive="icecode.jar" code="ICE.class" height="660" width="750">
    <param name="filenames" value="us0.gif, us1.gif, us2.gif">
    <param name="labels" value="1745UTC, 1815UTC, 1845UTC">
    <param name="do_animation" value="anything">
    <param name="resolution" value="km,16,16">
    <param name="calibration" value="degrees C, 0=56.8, 176=-31.2, 255=-110.2">
    </applet>
    
    Clique aqui para ver este exemplo em ação. Note que também adicionamos um calibração (valores de brilho à temperatura para imagens GOES IR).

    Observe que não especificamos uma cor de fundo, então o padrão (geralmente cinza) é usado.

  4. Apresentar apenas três imagens que você deseja exibir e permitir que o usuário explore, você omitiria o parâmetro "do _..." completamente. Por exemplo, você pode inserir o seguinte trecho no HTML da sua página:
    <applet archive="icecode.jar" code="ICE.class" height="660" width="750">
    <param name="filenames" value="band02.jpg, band06.jpg, band07.jpg">
    <param name="labels" value="0.87 micron,1.64 micron,2.13 micron">
    <param name="bgcolor" value="xFFFFFF">
    <param name="resolution" value="km,16,16">
    <param name="calibration" value="^oC, 0=56.8, 176=-31.2, 255=-110.2
    & %,0=0, 255=100 & E-3 W / m^2, 0=40., 120=16., 255=.2">
    </applet>
    
    Clique aqui para ver este exemplo em ação. Observe que também adicionamos uma curva de calibração para cada uma das imagens, e estas serão refletidas nos valores da sonda (juntamente com as unidades especificadas). Observe a "taquigrafia" para os sobrescritos para o grau e símbolo quadrado.

    E para ilustrar "navigation", pelo qual você tem imagens retangulares (em espaço de latitude-longitude), este exemplo também inclui o seguinte parâmetro:

    <param name="navigation" value="40.0, -90, 35.00, -70, nmi">
    
    que diz que o canto superior esquerdo da imagem está em 40.0N / 90W e o canto inferior direito é a 35.00N / 70W. Além disso, as unidades para exibir distância e área são milhas náuticas (nmi); Outras opções são "km" e "mi". O número máximo de dígitos à direita do decimal dos valores exibidos será o número máximo de dígitos à direita do decimal em qualquer um dos valores dados. Nesse caso, todos os valores exibidos terão 2 dígitos à direita do decimal (por causa do "35.00").

    Finalmente, aqui está um Exemplo do mundo real do Observatório da Terra da NASA, que usa esse modo "apenas imagem". Clique aqui para executá-lo.

  5. Para apresentar uma única imagem, com ferramentas mínimas disponíveis, você só precisa fazer isso:
    <applet archive="icecode.jar" code="ICE.class" height="460" width="750">
    <param name="filenames" value="test_patt.gif">
    <param name="labels" value="TV Test Pattern">
    <param name="resolution" value="px,1,1">
    </applet>
    
    Você pode executar este exemplo de imagem única (que também inclui um color_table seleção de interesse) por clicando aqui. A color_table As especificações são feitas do mesmo modo que mostrado anteriormente:
    <param name="colortable_filenames" value="aerosol_darksky.act,fasir_ndvi.act,atmospheric_profile_temp.act">
    <param name="colortable_labels" value="Dark Sky, NDVI, Profile Temperature">
    
    Isto é, claro, opcional.

Lista completa de parâmetros e opções HTML

Aqui está uma lista completa dos parâmetros das opções disponíveis no ICE:
  • <applet archive="icecode.jar" code="ICE.class" height="650" width="750">
    
    (requeridos) Isso diz que o applet ocupará 650 linhas e 750 pixels, onde quer que seja colocado. Algumas diretrizes:
    1. width quase sempre pode ser "750"
    2. Para modos como do_math e do_rgb, a altura deve ser cerca de 650.
    3. Para o modo somente de 3 imagens, a altura pode ser 620.
    4. Para o modo de imagem única, o height pode ser 440.
    Você deve ajustar o valor de altura conforme necessário.

  • <param name="bgcolor" value="xFFFF00">
    
    (opcional) Este parâmetro permite que você defina a cor de fundo do applet.    O formato do valor é: xRRGGBB (RR=red, GG=green, BB=blue) in hexadecimal. O Exemplo (xFFFF00) vai produzir amarelo (red=full, green=full, blue=none).

  • <param name="filenames" value="EOS1.GIF, EOS2.GIF, EOS5.GIF">
    
    (requeridos) Isso nomeia os arquivos de imagem (GIF ou JPEG). Eles são exibidos, left-to-right, como as miniaturas. Se não estiver fazendo operações de matemática, deve ter 3 imagens. Se você está fazendo matemática, você pode use 2 ou 3 imagens. Se você apenas usa dois, então a terceira miniatura mostrará os resultados da operação matemática nas outras duas imagens (será rotulado como "Resultados").

  • <param name="labels" value="Visible Channel, 6.7 micron, 10.7 micron">
    
    (requeridos) Estes são os rótulos das imagens. Eles estão na mesma ordem que os nomes dos arquivos (acima), e deve haver um número igual.

  • <param name="long_labels" value="The MODIS Visible Channel from 00Z 10 Dec 1998, The 6.7 micron channel, The 10.7 micron channel (aka 'IR')">
    
    (opcional) Estas são etiquetas "longas" opcionais para as imagens que serão usadas em vários dos modos para produzir a rotulagem abaixo da tela principal. Eles estão na mesma ordem que os nomes dos arquivos (acima), e deve haver um número igual. O padrão é usar os valores dos "rótulos" regulares, definidos acima.

  • <param name="resolution" value="km,4,5">
    
    (opcional) Este parâmetro, se presente, fará com que a Região selecionada "caixa de borracha" leia a área em "unidades" quadradas. A forma deste parâmetro é: "units, distance-per-line, distance-per-pixel"

  • <param name="do_rgb" value="anything">
    
    (opcional) Este parâmetro diz que o modo de combinação RGB deve ser usado. Este parâmetro pode ser usado em conjunto com "do_animation" (embora geralmente não seja), mas pode não aparecer se "do_math" ou "do_extended_math" aparecer.

  • <param name="do_animation" value="anything">
    
    (opcional) Este parâmetro diz que as imagens são realmente três em uma seqüência de tempo. Isso fará com que os botões "Animate" e "Step" aparecem, e também fará com que a "sonda" tenha um pequeno gráfico nela.

  • <param name="do_math" value="anything">
    
    (opcional) Isso altera a forma básica do applet para o "modo matemático". Aqui, cada miniatura tem uma caixa de texto de entrada "fator de escala" abaixo dela. Entre cada caixa de texto é um seletor pull-down para um operador de matemática: Adicionar, Subtrair, Multiplicar, Divisão. Será adicionar um widget de tabela de cores para o painel principal. Este modo pode ser combinado com "do_animation", mas pode não combinado com do_rgb.

  • <param name="probe_number_format" value="###.###">
    
    (opcional) Quando no modo "do_math", isso permite especificar o formato da leitura da sonda. Quando o modo "do_math" é especificado, a sonda será somente mostre o valor de restituição (como um valor decimal) de acordo com este formato. Os caracteres de formatação especiais são: # = um dígito (os zeros de ataque / fim não são exibidos),. = um ponto decimal, 0 = um digiti (os zeros à esquerda / a tracejado são mostrados). O padrão é como mostrado: ###.###).

  • <param name="do_extended_math" value="anything">
    
    (opcional) Este parâmetro implica "do_math" (acima), mas também adiciona operadores estendidos (agora, apenas NDVI). Nem "do_math" ou "do_extended_math" podem aparecer se "do_rgb" for usado.

  • <param name="initial_math"> value="1.0, 1, 2.0, 2, 0.5">
    
    (opcional) Quando "do_math" ou "do_extended_math" é usado, este parâmetro permite que você defina o conteúdo inicial (e a exibição inicial) das escalas matemáticas e operadores. Os cinco valores são:
    • Escala para o primeiro painel ("1.0")
    • operador entre o primeiro e o segundo painel (1 = adicionar)
    • escala para o segundo painel ("2.0")
    • operador entre segundo e terceiro painéis (2 = subtrair)
    • Escala para o terceiro painel ("0.5")

    Valores para operadores são:

         0 = fazer nada
         1 = adicionar
         2 = subtrair
         3 = multiplicar
         4 = dividir
         5 = NDVI (apenas no modo do_extended_math)
    
    Se você estiver usando apenas duas imagens, então você pode abreviar a forma do initial_math parâmetro para apenas os três primeiros itens.

    NOTA: se nenhum dos parâmetros "do_..." estiver presente, um botão "Etapa" será adicionado para permitir que o usuário traga cada uma das miniaturas para a janela principal .... para qualquer finalidade...

  • <param name="colortable_filenames" value="file1.act, file2.act...">
    <param name="colortable_labels" value="label for file1, label for file2, ...">
    
    (opcional) Esses dois parâmetros especificam que as tabelas de pesquisa de cores devem ser lidas a partir dos arquivos nomeados. Os rótulos aparecerão no menu suspenso que é usado para selecionar um deles. A presença desses dois parâmetros fará com que um pull-down seja colocado abaixo do painel principal no visor. Os arquivos coloráveis com arquivos ".act" (trigêmeos de bytes binários (RGB) para valores de pixel de 0 a 255).

  • <param name="calibration" value="C, 0=56.8, 176=-31.2, 255=-110.2">
    <param name="calibration" value="C, slope=.5, intercept=163>
    
    (opcional) Estas duas formas de calibração o parâmetro permite que você especifique a conversão entre valores de imagem (8 bits) e alguma quantidade física. No primeiro exemplo, são fornecidas uma série de "pontos de interrupção", na forma: image_value=physical_value. O primeiro 'image_value' deve ser o menor, e o último deve ser o maior. Os outros servem como pontos de interrupção, e a interpolação linear será usada no meio. Se o primeiro 'image_value' é maior que zero, todo o valor de 0 a ele será considerado 'missing'. Da mesma forma, se o último valor for inferior a 255, todo o resto dos valores será considerado 'missing'.

    A segunda forma fornece uma forma mais convencional de "inclinação e intercepção" e é conveniente nos casos em que a conversão é linear em toda a faixa de entrada (imagem).

    Você também pode fornecer uma calibração para cada uma das 3 imagens de trabalho de forma independente, separando-as com um caractere e comercial (&). Por Exemplo:

    <param name="calibration" value="^oC, 0=56.8, 176=-31.2, 255=-110.2 
    & %,0=0,255=100 & E-3 W / m^2, 0=88, 120=15.5, 255=.22">
    
    Estes valores serão listados com a leitura da sonda.

    Nota: O número máximo de dígitos decimais (à direita do ponto decimal) que você especifica para qualquer um dos valores calibrados em cada seção será usado para formatar os monitores. Por exemplo, se você diz "15.24", a exibição desse parâmetro será formatada como "XX.XX". Se houver mais de 5 dígitos, uma mensagem de aviso é mostrada no console de Java...

    Nota: os códigos abreviados dos superestruturas para o grau, dois e três são: ^o, ^2, ^3, respectivamente. Nota: para suprimir a listagem das unidades na sonda, use o valor "nenhum" (sem as aspas) no parâmetro.

  • <param name="navigation" value="35.1, -90, 25.22, -70.1">
    
    (opcional) Este parâmetro fará com que o formulário de leitura da sonda seja alterado para incluir a latitude e longitude do ponto, bem como os valores. A precisão máxima dos valores dados neste parâmetro também exigirá a precisão exibida na leitura; portanto, no exemplo acima, os valores da sonda serão listados em dois lugares à direita do ponto decimal.
  • <param name="missing_value" value="255">
    
    (opcional) Este parâmetro fará com que o valor indicado (255 neste caso) seja usado como "missing". Os pixels que contenham esse valor serão ignorados durante as operações matemáticas. Além disso, qualquer pixel na imagem "red" que não possui componentes R-G-B iguais fará com que esse pixel seja considerado "missing" em todas as imagens, independentemente da presença do 'missing_value' parâmetro.
  • <param name="missing_values" value="255 & 0,1,2,253,254,255 & 180,255">
    
    (opcional) Este parâmetro fará com que os valores indicados para cada imagem sejam definidos como "missing". Esta é a mais flexível das três maneiras de definir valores em falta. Os valores das imagens são separados por um e comercial, enquanto os valores de uma imagem individual são separados por vírgulas. No exemplo mostrado, a primeira imagem tem um valor faltando (255), a segunda imagem possui 6 valores faltantes (0,1,2,253,254,255) e a última imagem possui dois valores faltantes (180 e 255). como "missing". Os pixels que contenham esses valores serão ignorados durante as operações matemáticas. Observe também que qualquer pixel que não tenha componentes R-G-B iguais fará com que esse pixel seja considerado "faltando" em todas as imagens, independentemente da presença do 'missing_values' parametro. Observe: neste caso, o valor 255 é declarado "missing".


Aviso de direitos autorais

O software aqui descrito é o pacote ICE (Image Componsite Explorer), um kit de ferramentas baseado na web para explorar combinações de imagens. Foi desenvolvido sob contrato com o Observatório da Terra da NASA e é Copyright (C) 2002-2006 por Tom Whittaker.

Este programa é um software livre; você pode redistribuí-lo e / ou modificá-lo, mas você NÃO pode reconformá-lo e vendê-lo.

Este programa é distribuído na esperança de que seja útil, mas SEM QUALQUER GARANTIA; sem a garantia implícita de COMERCIALIZAÇÃO ou APTIDÃO PARA UM FIM ESPECÍFICO.

Os desenvolvedores ou seus empregadores ou a agência responsável não são responsáveis por todas e quaisquer ramificações, etc., que podem resultar da utilização deste software ou do software derivado disso. Além disso, você concorda em nos privar de quaisquer consequências relacionadas ao uso desse software..

É isso aí.