A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Orlando Jalane Ausvaldo Mabjaia

Apresentações semelhantes


Apresentação em tema: "Orlando Jalane Ausvaldo Mabjaia"— Transcrição da apresentação:

1 Orlando Jalane Ausvaldo Mabjaia
ArcGIS Model Builder Orlando Jalane Ausvaldo Mabjaia

2 Programação Importância da automatização dos processos em SIG
Breve histórico das linguagens script do ArcInfo / ArcView Arc Macro Language Avenue Possibilidades de automatização de processos em outros SIGs Spring (Legal) ENVI (IDL) Erdas (Model Maker) Dinâmica EGO Shell scripts / Python (Grass - interface por linha de comando) Possibilidades de automatização no ArcGIS VB Scripts Python Processamento de lotes (ArcToolbox) Model Builder

3 Programação Exemplo de processamento em lotes
Realizar mesma tarefa em difersos arquivos separadamente Projetar vários arquivos de uma vez Construindo modelos de processamento no Model Builder Criar um novo Toolbox e um novo modelo Parâmetros, dados intermediários e manejados pelo ModelBuilder Modelos dentro de modelos, dentro de modelos… Exercícios práticos Modelo simples – raster calculator Calibração radiométrica Cálculo de NDVI a partir de imagens TM Classes de declividade Normalizando valores em imagens Classificação não supervisionada em apenas um click Removendo linhas falhadas em imagens HRC Recorte de imagem a partir de diversos polígonos (ex. de iteração e uso de variáveis) Exemplos Ponto de sela Topo de morro USLE

4 Importância da automação dos processos SIG
Rotinas de processamento em SIG Vários passos Sequência correta Delimitação de bacias Zoneamentos (áreas aptas, mapeamento de habitats) Uso do solo em APP USLE Possibilidade de salvar sequência de operações Utilizar mais tarde, realizar ajustes Compartilhar

5 Importância da automação dos processos SIG
Linguagens Script Programação que permite o controle de uma aplicação Diversas aplicações, não só em SIG Para SIG existem diversas opções de linguagem script Ferramentas gráficas para montagem de processos Model Builder: Montar um fluxograma, encadeando os processos, gerando uma nova ferramenta no ArcToolbox

6 Breve histórico das linguagens script do ArcInfo / ArcView
Arc Macro Language (AML) Desenvolvida pela ESRI (1986) Específica para ArcInfo GIS Permitia criação de menus, uso de variáveis, execução de comandos etc…

7 Exemplo de AML Verde: Variáveis Azul: comentários
/* script para segmentar processamento do DEM /* colocando margem de 10 km /* daniel 20 junho 2008 &do i = 1 &to 3 &do j = 1 &to 3 &describe srtm_30i /* setmask dem_sp_poly &sv y_range = [calc ( ( %grd$ymax% - %grd$ymin% ) / 3 )] &sv x_range = [calc ( ( %grd$xmax% - %grd$xmin% ) / 3 )] /* quanto de overlap entre os blocos? /* FUNCIONA P/ POLICONICA!! EM METROS!!! /* NÃO APLICAR EM PROJ GEOGRÁFICA &sv overlap = &type Processando bloco %i% %j% setwindow [calc %grd$xmin% + ( %i% - 1 ) * %x_range% - %overlap% ] ~ [calc %grd$ymin% + ( %j% - 1 ) * %y_range% - %overlap% ] ~ [calc %grd$xmin% + %i% * %x_range% + %overlap% ] ~ [calc %grd$ymin% + %j% * %y_range% + %overlap% ] /* rodando rotina para topos de morro /* deve-se antes acertar os nomes dos grids /* e ao final renomear as saídas! dem_bloco = srtm_30i &type Bloco %i% %j% recortado. Definindo morros... &type Va tomar um cafe... &r topo_daniel /* renomeando arquivos de saída e limpando intermediário kill dem_bloco all rename terco_tm_pt tm_pt_%i%_%j% rename terc_msk terc_msk_%i%_%j% rename basin_inv basin_inv_%i%_%j% /* voltando ao grid grid &end Verde: Variáveis Azul: comentários Vermelho: comandos AML Preto: comandos Arc Chamando um outro AML

8 Exemplo de AML /* script para calcular mapas necessários aos topos de morro /* deve ser rodado dentro do grid /* daniel - 20 junho 2008 /* adaptado do script de Marcos Hott /* troca dos nomes dos arquivos deve ser feita antes de entrar neste aml /* dem deve chamar dem_bloco /* NÃO ESQUECER DE RENOMEAR SAÍDA &severity &error &ignore /* w C:\comum\fill_14 /* GRID setwindow dem_bloco setmask dem_bloco setcell dem_bloco &type Invertendo e gerando direcao de fluxo mde_inv = dem_bloco * -1 buildvat mde_inv flow_inv = flowdirection(mde_inv) buildvat flow_inv &type Identificando cumes sink_mask = sink(flow_inv) buildvat sink_mask setmask sink_mask cume = dem_bloco &type Delimitando morros por bacias setmask mde_inv basin_inv = basin(flow_inv) buildvat basin_inv &type Obtendo altitude máxima de cada morro cume_max = zonalmax (basin_inv, cume, data) buildvat cume_max &type Passando valor de altitude para os cumes setmask cume cume_mde = con (cume == cume_max, cume, setnull(cume)) buildvat cume_mde &type Obtendo altitude mínima dos morros setmask mde_inv base_mde = zonalmin (basin_inv, dem_bloco, data) buildvat base_mde &type Calculando declividade e obtendo declividade máxima dos morros decl_mde = slope (dem_bloco, percentrise) buildvat decl_mde decmax_mde = zonalmax (basin_inv, decl_mde, data) buildvat decmax_mde &type Selecionando morros/montanhas que se enquadram na legislação setmask cume_mde terco_tm = con((((cume_mde - base_mde) >= 50) & ((cume_mde - base_mde) <= 300) & (decmax_mde > 30)) | ((cume_mde - base_mde) > 300), (cume_mde - ((cume_mde - base_mde) / 3)), setnull(cume_mde)) setmask terco_tm terco_tm_pt = gridpoint (terco_tm, cota) &type Encontrando cumes próximos (500 m) q buffer terco_tm_pt terc_msk # # point round full /* infelizmente, daqui pra frente tem que ser feito no ArcMAP, na mão /* removendo arquivos temporários desnecessários kill mde_inv all kill flow_inv all kill sink_mask all kill cume all kill cume_max all kill cume_mde all kill base_mde all kill decl_mde all kill decmax_mde all kill terco_tm /* NÃO ESQUECER DE RENOMEAR SAÍDA!!!! /* e voltar ao grid após renomear

9 Breve histórico das linguagens script do ArcInfo / ArcView
Avenue Linguagem de programação, orientada a objeto, específica para ArcView Permite desenvolver novas aplicações em ArcView Botões, views, tabelas etc… Muitas das ferramentas no ArcView são Avenue Scripts, o que possibilita ao usuário realizar alterações de interesse

10 Exemplo de Avenue Permitia desenvolver scripts, programas…
'‘ '' Example of how to handle ArcView coverages with '' multiple attribute records per feature. '' '' GeoSnap Software - '' '' Notes: "bchres - (Many)" VTab '' '' "Parlabel" contains the parameter(chemical) name code '' "Parval" contains the detected amount '' "Units" contains the units of measure '' '' '--- get the theme that contains the sample locations (points) ---' aView = av.GetProject.FindDoc("View1") aTheme = aView.FindTheme("bchldi") '--- make a list to hold the query strings ---' aListOfQueries = List.Make '--- make the query string (1) ---' '--- Lead (PB) >= 200 Mg/Kg ---' aQuery = "([ParLabel] = " + "PB".Quote + ")" aQuery = aQuery + " and " + "([Units].Trim = "+ "MG/KG".Quote + ")" aQuery = aQuery + " and " + "([ParVal].AsNumber >= 200)" aListOfQueries.Add( aQuery ) ( ... ) Permitia desenvolver scripts, programas… Trocar aplicativos Muitos disponíveis na pág. da ESRI Extensões do ArcView, desenvolvidas pela comunidade SIG Contém 1984 scripts (18/08/2011)

11 Avenue (18/08/2011)

12 Possibilidades de automatização de processos em outros SIGs
Criar fluxos de processamento, salvar e compartilhar não é excusividade da ESRI Spring ENVI ERDAS Dinamica EGO Outros

13 Spring LEGAL: Linguagem Espacial para Geoprocessamento Algébrico
{ // Parte 1- Declaracao // Definição de Variaveis Tematico solo_CE ("Solos"); Tabela tab_peso (Ponderacao); Numerico solo_peso_CE ("SoloPond"); // Definicao da Tabela de Pesos tab_peso = Novo (CategoriaIni = "Solos", CategoriaFim = "SoloPond", Le : 0.60, Li : 0.2, Ls : 0.35, Aq : 0.1); // Parte 2 - Instanciacao // Recuperacao do mapa de solos solo_CE = Recupere (Nome = "Solo_CE"); // Criacao do novo mapa de solos ponderado solo_peso_CE = Novo (Nome = "solo_p", ResX = 30, ResY = 30, Escala = ); // Parte 3 - Operacao de Ponderacao solo_pond_CE = Pondera (solo_CE, tab_peso); }

14 Spring LEGAL: Linguagem Espacial para Geoprocessamento Algébrico
Fatiamento Reclassificação Operações boleanas Operações condicionais Operações matemáticas e de vizinhança Classificação fuzzy

15 Spring

16 ENVI Linguagem IDL (Interactive Data Language)
; Programa para executar o modelo linear de mistura no ENVI ; Autor: Egidio Arai fev/2009 pro mlm envi, /restore_base_save_files envi_batch_init, log_file='c:\user\bayma\novapasta\loglis.txt' nome_arq = ' ' ; ; Abre arquivo de lista das imagens openr, 1, 'c:\user\bayma\novapasta\lista.txt' WHILE ~ EOF(1) DO BEGIN readf, 1, nome_arq ENVI_OPEN_FILE, nome_arq, r_fid=fid1 if (fid1 eq -1) then return ENVI_FILE_QUERY, fid1, dims=dims, nb=nb pos = lindgen(nb) temp = strsplit(nome_arq,'.',/extract) arq_sai = temp[0]+'_mlm.tif' print, "lendo ", nome_arq ; Calcula mlm ; Read in the endmember text file. The first column are the wavelengths and the ; next 19 columns are the endmembers. We will use the 19 endmembers for unmixing. ; The endmember data must also be transposed in order to send in ; a (nb, # endmember) array. envi_read_cols, 'c:\user\bayma\novapasta\endmem.txt', endmem, skip=em_names, /read_skip endmem = transpose(endmem[1:*,*]) out_bname = [em_names[2:*], 'RMS Error'] ; Call the Unmixing processing routine. envi_doit,'unmix_doit', fid=fid1, pos=pos, dims=dims, $ endmem=endmem, OUT_BNAME=out_bname, $ /IN_MEMORY, r_fid=rfid, WEIGHT=10000 Código fornecido por Gustavo Bayma

17 ENVI Spot Calibration Hyperion Deimos-1 Toolkit MODIS Toolkit

18 ERDAS Model Maker Modelos prontos
Possibilita criar modelos próprios e compartilhar Rodar modelos em um servidor

19 ERDAS Calibração Radiométrica Reflectância no topo da atm
Modelos de Ricardo Andrade

20 Dinâmica EGO UFMG (Britaldo Soares et al.)
Simulação de mudanças de uso e cobertura da terra Gerar fluxos de processamento…

21 Dinâmica EGO

22 Dinâmica EGO

23 Dinâmica EGO

24 Outras opções Python (módulos GDAL, GRASS) R (módulos Raster, Gdal)
Ex.: MODIS R (módulos Raster, Gdal) Shell script (GRASS) TerraME (LUA + TerraLIB) ...

25 GRASS Graphical Modeler

26 Possibilidades de automatização no ArcGIS
VB, Python, C#, Java … Arc Scripts - Não será mais atualizado ArcGIS Resource Center Model and script tool gallery

27 Top 10 - Geral Top 10 ArcGIS ArcInfo

28 http://resources. arcgis. com/gallery/file/geoprocessing

29 Opções mais palatáveis…
Dentro do ArcGIS Processamento em lotes (batch) Funciona com qualquer ferramenta do ArcToolbox Model Builder

30 Opções mais palatáveis…
Processamento em lotes (batch) Funciona com qualquer ferramenta do ArcToolbox

31 Project Raster Raster de entrada Projeção do raster de entrada Raster de saída Projeção do raster de saída Opções diversas (método, reamostragem, resolução)

32 Batch Project Raster Parâmetros da ferramenta Adiciona / Remove linhas
Cada linha é um processamento Adiciona / Remove linhas Dois arquivos: spot_vgt_a1.tif e spot_vgt_a2.tif em coordenadas geográficas Passar para UTM Zona 23S

33 Model Builder Fluxograma, encadeando processos para gerar uma nova ferramenta no ArcToolbox

34 Model Builder Modelos devem ser salvos dentro de um ToolBox
Criando um ToolBox para guardar os modelos Arquivo .tbx Clicar com botão direito no ArcToolbox Add toolbox Botão New ToolBox

35 Criando um ToolBox Selecionar toolbox criado; open

36 Criando um ToolBox Pode-se escrever informações na caixa de propriedades do ToolBox -- metadados – Botão direito; Save Settings; To Default: toolbox será aberta na próxima vez que abrir o Arc

37 Criando um novo modelo Botão direito; new; model
Tb pode criar grupos (Toolset)

38 Model Properties Nome interno do modelo Nome fantasia Descrição

39 Model Properties Environments: Permite definir o ambiente
Pasta Temporária Resolução raster Máscara Etc…

40 Conectar objetos Verificar Rodar Botões: Esquerda p/ direita Salvar
Imprimir Recortar Copiar Colar Apagar Undo Redo Adicionar dados, ferramentas Auto-organizar Controles de zoom Conectar objetos Verificar Rodar

41 Primeiro modelo: Raster Calculator

42 Para a versao Arc 10 Primeiro Modelo: Raster Calculator
Adicionar ferramenta de Raster Calculator Spatial Analyst / Map Algebra / Raster Calculator

43 Primeiro Modelo: Raster Calculator
Funções Imagens na área do modelo Imagens adicionadas ao display Expressão Saída Clicar OK e Rodar o modelo

44 Para a Versao Arc 9.3 e 9.xxx Adicionar ferramenta de Raster Calculator Spatial Analyst / Map Algebra /Single output Map Algebra Adicionar Imagens TM banda 3; TM Banda 4 Fazer com que resultado seja adicionado ao display (botão direito / add to display) Duplo click no Single output Map Algebra (abrir opções)

45 Editar os nomes das variaveis
Faca click o mouse a direita.

46 Como definir as variaveis
Duplo click no single output Algebra

47 Fazer os dados aparecer no operador

48 Desenho da parte Matematica

49 Primeiro Modelo: Raster Calculator
Somente valores -1; 0 e 1 Importante: Diferença entre valores inteiros e reais!! Expressão deveria ser: Float("%Banda 4%" - "%Banda 3%") / ("%Banda 4%" + "%Banda 3%")

50 Primeiro Modelo: Raster Calculator

51 Primeiro Modelo: Raster Calculator
Botão direito  Diversas opções Renomear objeto Definir parâmetros do modelo Dados intermediários (managed)

52 Modelos dentro de modelos, dentro de modelos, dentro de mo…

53 Calibração Radiométrica
Adicionar uma variável: Botão direito / Create variable Variável Double Variável Double Raster layer

54 Calibração Radiométrica: dentro do Raster Calculator
Este erro aparece pq parâmetros não foram definidos Deixar vazio para não preencher automaticamente

55

56 Parâmetros para TM BAND1_NAME = LANDSAT_5_TM_ _226_073_L2_BAND1; BAND1_WAVELENGTHS = 0.45,0.52; BAND1_RADIOMETRIC_GAINS/BIAS = ,-1.52; BAND2_NAME = LANDSAT_5_TM_ _226_073_L2_BAND2; BAND2_WAVELENGTHS = 0.52,0.6; BAND2_RADIOMETRIC_GAINS/BIAS = ,-2.84; BAND3_NAME = LANDSAT_5_TM_ _226_073_L2_BAND3; BAND3_WAVELENGTHS = 0.63,0.69; BAND3_RADIOMETRIC_GAINS/BIAS = ,-1.17; BAND4_NAME = LANDSAT_5_TM_ _226_073_L2_BAND4; BAND4_WAVELENGTHS = 0.76,0.9; BAND4_RADIOMETRIC_GAINS/BIAS = ,-1.51; BAND5_NAME = LANDSAT_5_TM_ _226_073_L2_BAND5; BAND5_WAVELENGTHS = 1.55,1.75; BAND5_RADIOMETRIC_GAINS/BIAS = ,-0.37; BAND6_NAME = LANDSAT_5_TM_ _226_073_L2_BAND6; BAND6_WAVELENGTHS = 10.4,12.5; BAND6_RADIOMETRIC_GAINS/BIAS = ,1.2378; BAND7_NAME = LANDSAT_5_TM_ _226_073_L2_BAND7; BAND7_WAVELENGTHS = 2.08,2.35; BAND7_RADIOMETRIC_GAINS/BIAS = ,-0.15; END_OF_HDR;

57 Modelo dentro de modelo, dentro de modelo, dentro de mo…

58 Classes de Declividade
Dividir um DEM nas classes de declividade Calcular declividade Função Slope Classificar Função Reclassify Declividade (º) (%) Nome da Classe 0 - 1,72 0 – 3 % Plano 1,72 – 4,57 3 – 8 % Suave ondulado 4, ,31 8 – 20 % Ondulado 11,31 -24,23 % Forte ondulado 24,23 -36,87 45 – 75 % Montanhoso > 36,87 > 75 % Escarpado

59 Classes de declividade

60 Classificação não supervisionada em um click
Classificação no Arc é um processo com dois passos Gerar arquivo de assinatura Max Likelihood Arc 10 já tem script para fazer não supervisionada em apenas um passo. Script python

61 Classific não supervisionada
Adicionar imagens spotvgt_amp_bandas 1 a 4 Adicionar ferramenta IsoCluster Spatial Analyst / Multivatiate Adicionar ferramenta Maximum likelihood Ligar imagens nas ferramentas IMPORTANTE: Respeitar sequência! Definir 10 classes no IsoCluster Ligar saida do Isocluster (arq. de assinatura) no Max. Lik. Adicionar Output raster ao display Rodar

62

63 Normalizando valores em imagens
Diferentes imagens com a mesma aplitude nos valores (0 – 1000) PQ? Isocluster: Funciona melhor se imagens apresentarem valores na mesma faixa Manual ArcGIS 10

64 Modelo para normalizar imagem
Funções 2x Get Raster Properties (Data management / Raster / Raster Properties) Raster Calculator Um raster properties p/ pegar valor máx e outro para mínimo ("%Entrada%" - %Minimo%) / (%Maximo% - %Minimo%) * 1000 Deixar saida com um nome de arquivo…

65

66 Usando um modelo dentro do outro
Copiar modelo de classificação para um outro nome (botão direito – copy – paste e renomear) No modelo novo, remover bandas de entrada Arrastar modelo de normalização de dados para o modelo novo TROCAR O NOME DO RASTER DE SAÍDA DO MODELO DE NORMALIZAÇÃO!!! Faz isso 4 x (4 bandas)

67

68 15m Spot VGT Não norm. Normalizada

69 Removendo falhas em imagens HRC
Imagens de alta resolução do CBERS-2b 2.5 m Linhas falhadas Largura de poucos pixels Corrigir VISUALMENTE

70 Parte da imagem HRC 155_c 125_3 de 28/08/2008

71 Removendo falhas em imagens HRC
Identificar locais da falha Set Null: passar valores 0 para nulo Spatial analyst / conditional Gerar imagem “borrada” Focal Statistics: Média de 3x3, ignorando nulos Spatial Analyst / Neighborhood Juntar imagens aplicando condição Con(original = 0, borrada, original)

72

73

74 Recorte de imagens em polígonos
Exemplo de iteração Repetir uma operação um determinado número de vezes ArcGIS 9.2: algumas maneiras de iteração ArcGIS 10: maior suporte para iteração Recortar imagem em diversos polígonos, a partir de um shape

75 Iteradores no Model Builder

76 Recorte de imagens em polígonos
Dados: Composta spot vgt; municipios_spotvgt.shp Iterate Field Values Botão direito / iterators Select Analysis tools / extract Extract by mask Spatial Analyst / extraction

77 Recorte de imagens por polígonos
Conectar shape ao iterador Iterar pelo geocodigo Renomear saida do iterador para GeoC Conectar shape ao select No query colocar “Geocodigo”= ‘%GeoC%’ Fazer saida managed Conectar saida do select e raster no extract by mask Nome da saida: spotvgt_%GeoC%.tif

78

79 Cuidado Iterações podem demorar MUITO
Shape de municípios tem 235 polígonos! No meu computador demorou 20 minutos! Usar arquivo 10munic_spotvgt.shp Só 10 municípios

80 Problemas nas bordas dos polígonos. O que fazer?

81 Topo de Morro

82 Ponto de Sela

83

84 Finalmente… Manual do ArcGIS Limites? Referência
Limites de processamento (memória, disco) Tempo Referência Manual do ArcGIS

85 Obrigado


Carregar ppt "Orlando Jalane Ausvaldo Mabjaia"

Apresentações semelhantes


Anúncios Google