NCAR Command Language (NCL)

Documentos relacionados
Inteligência Computacional Aula 2 - Introdução ao MatLab Graduação /2

(Extraído do Livro: Fundamentos da Programação. Ascencio, Ana/Campos, Edilene)

Aula Prática I GrADS (Grid Analysis and Display System)

Algoritmos Fundamento e Prática

(Extraído do Livro: Fundamentos da Programação. Ascencio, Ana/Campos, Edilene)

Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.

1.1 o que é um algoritmo... 6

TUTORIAL SIMPLIFICADO DE MATLAB

LINGUAGEM C VETOR E MATRIZ

Linguagem C: Introdução

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE DEPARTAMENTO DE INFORMÁTICA E MATEMÁTICA APLICADA. DIM0320 Algoritmos e Programação de Computadores

Disciplina de Algoritmos e Programação

Programação I A Linguagem C. Prof. Carlos Alberto

Introdução à Programação

4. Constantes. Constantes pré-definidas

CURSO BÁSICO DE PROGRAMAÇÃO AULA 15. Revisão Vetores e Matrizes Trabalho

Curso Básico de Programação Aula 11. Revisão Aula Anterior Laços de Repetição While; Do-While; For.

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis

Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes?

CURSO BÁSICO DE PROGRAMAÇÃO AULA 11. Revisão Aula Anterior Vetores Cadeia de Caracteres

Estácio-FIC Graduação em Redes de Computadores

Questão 1 Analise o trecho do código abaixo, escrito na linguagem C#:

Organização de programas em Python. Vanessa Braganholo

Array em Java. Figura 1 - Exemplo de um array de inteiros

Computação Científica com Python

Introdução ao NCAR Command Language (NCL), com aplicações em Meteorologia

Algoritmos II prof. Daniel Oliveira

Programação I Matrizes e Strings. Prof. Carlos Alberto

MC-102 Aula 21 Registros

Aprenda a Programar com Minecraft

Lição 7 Array em Java

Introdução ao Fortran 90-1

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

SCS Sistemas de Controle / Servomecanismos. Aula 01 Introdução ao software MATLAB

Laboratório de Programação II

Computação Eletrônica. Aula 08 Estruturas de Dados. Prof: Luciano Barbosa. CIn.ufpe.br

Algoritmos e Programação

Arrays. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul

Programa de treinamento online do IBIS / INLAND. Marcos Heil Costa UFV

Programação Estruturada

Introdução à linguagem Perl

A Linguagem Python: Uma visão geral. Prof. Alberto Costa Neto Programação em Python

Características Básicas

LISTA DE EXERCÍCIOS 2

BCD29008 Banco de dados

Sumário. Introdução 1

Introdução ao fortran 90 - Aula 1

Algoritmos e Estruturas de Dados. Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras PURO

JavaScript (Elementos de Programação e Programação Básica)

CIT Aula 02 Variáveis e Estruturas de desvio condicional. Autor: Max Rodrigues Marques Carga Horária: 2 h 22/07/15 1

Estrutura de Dados. Cadeia de Caracteres. Roberto Araujo Ago/2013

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

PHP Básico Módulo I. Carga Horária: 32 horas. Conteúdo: Conceitos Básicos Introdução; Características; Scripts;

Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Aprendizado de Máquina (Machine Learning)

TCC 00308: Programação de Computadores I Organização de programas em Python

Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida)

Computação Eletrônica. Strings. Prof: Luciano Barbosa. CIn.ufpe.br

Minicurso de MATLAB. Programa de Educação Tutorial de Engenharia Elétrica. lmax Rodrigues. lcaroline Pereira. lnayara Medeiros

Aula 06 Introdução à Programação Matrizes

Algoritmos e Estruturas de Dados I (DCC/003) Introdução à Programação de Computadores. Aula - Tópico 1

Estruturas de Repetição

Transcrição:

Disciplina de Computação Aplicada à Meteorologia II NCAR Command Language (NCL) Mateus da Silva Teixeira - FMET / UFPel (mateus.teixeira@ufpel.edu.br)

Introdução O que é o NCL: Linguagem de programação completa (interpretada): Tipos Variáveis Operadores Expressões Declarações condicionais Loops Funções e subrotinas

Introdução O que é o NCL (continuação): Manipulação de metadados Geração e configuração de gráficos Acesso a uma variedade de formatos de arquivos de dados Suporte a operações com arranjos

Visão geral

Introdução Vamos conhecer o website? http://www.ncl.ucar.edu

Introdução Há dois modos de uso: Interativo: Entra-se com ncl Volta ao shell com quit Interessante para testes rápidos e simples

Modo Interativo

Introdução Há dois modos de uso (continuação): Script (ou Batch): Arquivo com extensão.ncl (sugestão!) Estruturação dos comandos Mais fácil depuração de erros e execução de blocos de comandos

Modo Script TERMINAL (Shell) Editor ASCII (gedit)

Modelo de variável do NCL Modelo baseado no formato netcdf NCL converte GRIB, HDF, por exemplo, para netcdf Como é um arquivo netcdf?

Arquivo netcdf Importante [mateus@mateus-infoway dados]$ ncdump -h uv300.nc ferramenta netcdf netcdf uv300 { dimensions: lat = 64 ; lon = 128 ; time = 2 ; int time(time) ; variables: time:long_name = "Month of Year" ; float lat(lat) ; time:short_name = "Mo" ; lat:short_name = "lat" ; time:units = "month" ; lat:long_name = "latitude" ; float U(time, lat, lon) ; lat:units = "degrees_north" ; U:_FillValue = -999.f ; float lon(lon) ; U:long_name = "Zonal Wind" ; lon:units = "degrees_east" ; U:short_name = "U" ; lon:long_name = "longitude" ; U:units = "m/s" ; lon:short_name = "lon" ; float V(time, lat, lon) ; float gw(lat) ; V:_FillValue = -999.f ; gw:long_name = "gaussian weights" ; V:long_name = "Meridional Wind" ; gw:short_name = "gws" ; V:short_name = "V" ; gw:units = "dimensionless" ; V:units = "m/s" ;

Arquivo netcdf // global attributes: :title = "UV300: January and July" ; :source = "Climate Analysis Section, NCAR" ; :history = "Dataset uv300.hs from EZPLOT demo dataset" ; :Conventions = "None" ; :creation_date = "Mon Mar 29 09:24:57 MST 1999" ; :references = "\n", "EZPLOT for Publication Quality Plots\n", "Christian Guillemot\n", "NCAR-TN 414 1995\n", "http://www.cgd.ucar.edu/cas/ezplot/" ; }

Variáveis NCL / arquivos netcdf Variáveis possuem Atributos Acessados via uso do símbolo @ Coordenadas Acessadas via uso do símbolo & Nomes em dimensões Criados e acessados via símbolo! Atributos, Coordenadas e Nomes de dimensões são os metadados

Criando a primeira variável...

Criando a primeira variável... Criando variável por atribuição!

Criando a primeira variável... Resumo da variável

printvarsummary() Função importantíssima! Exibe resumo da variável: Tamanho em bytes Tipo Dimensões, seus tamanhos e nomes Coordenadas Atributos Unidades, etc Amiga do programador!

Apagando uma variável Apagando a variável 'x'

Apagando uma variável Variável torna-se indefinida, o.s., não existe mais!

Criando um vetor de dados... Criando variável com função new() Importante atributo!!! Veremos aplicação mais tarde.

Metadados à variável... Dando um nome à dimensão

Coordenadas... Coordenadas à dimensão

Atributos... Atributos => Metadados = informações sobre os dados!

Acessando dados da variável Antes de acessar, vamos ver o que há nessa variável Não há dados! Todos são _FillValue

Acessando dados da variável Fornecendo dados Usando construtor de arranjos: (/ /)

Acessando dados da variável Visualizando 5º elemento do arranjo 1D Elementos indexados (numerados) de 0 a N-1

Acessando dados da variável Visualizando 5º elemento do arranjo 1D, mas por coordenadas! Uso de coordenadas: uso de { }

O atributo _FillValue Indica inexistência de dados Passível de personalização Algumas funções do NCL interagem com esse atributo Cálculos matemáticos Plotagem de campos Métodos estatísticos entre outros

O atributo _FillValue

NCL e arquivos de dados Oferece suporte a vários tipos de arquivos: Formatos suportados: Binários: netcdf; HDF4/H5; HDF-EOS; GRIB1-2; Shapefile Sequenciais e diretos ASCII (texto puro) Dados organizados em linhas e colunas

addfile() - abre arquivos suportados forma de uso: f = addfile( nome_arq.ext, status ) nome_arq : qualquer nome válido (string) ext : extensão que identifica o tipo do arquivo (string) não precisa fazer parte do nome do arquivo. netcdf*: nc ou cdf HDF*: hdf, hdfeos, h5, he5 GRIB: grb, grib Shapefile: shp status : r, c, w f => variável de referência ao arquivo.

Lendo dados de arquivos: variável = variável_referência_arquivo ->variável_arquivo Exemplo:

Uma vez carregado ao NCL, a variável do arquivo pode ser usada normalmente:

Buscando uma informação via coordenadas: Indexação padrão e por coordenadas misturadas! Indicando que é uma parte dos dados. Coordenadas reais do dado obtido.

Arquivos ASCII O NCL fornece capacidade de leitura e escrita de dados contidos em arquivos ASCII texto puro. Funções: asciiread : leitura de arquivos ASCII. asciiwrite : armazena dados em arquivos ASCII; não permite formatação dos dados (uma única coluna de dados). write_matrix : grava tabelas de dados em arquivos ASCII; permite controle de formato Também fica sob a responsabilidade do usuário referenciar os dados apropriadamente!

Arquivo dados.txt contendo uma matriz de dados 3x3 Lendo dados de um arquivo ASCII: dados = asciiread( dados.txt, (/3,3/), integer ) nome do arquivo linhas x colunas tipo do dado

Dimensões dos dados Dados lidos!

Lendo dados de um arquivo ASCII: asciiread aceita o valor -1, ao invés do número de linhas e colunas => dados lidos como vetor.

Dimensões passadas à função asciiread: (/3,3/) -1

Escrevendo arquivos ASCII: asciiwrite( novo_dados.txt, dados ) Matriz a ser gravada no arquivo ASCII nome do arquivo write_matrix( dados, 3i5, opcoes ) Matriz a ser gravada no arquivo ASCII Formatação das colunas de dados opcao = True opcao@fout = novo_dados.txt Atributo que muda o funcionamento da função