Dear NCL users,
I'm trying to plot two fields in one figure: a contour plot and a vector
plot, but the panel of the vector plot appears with greater size.
Apparently all map attributes of the two plots are the same.
Could you help me?
Please, find attached my ncl scrypt and gif files.
Thanks.
Mateus
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
begin
; carregando arquivo
f=addfile("VariaveisPressao_1967MAR15-25.grib","r")
; carregando coordenadas de tempo e espaço
tempo=f->initial_time0_encoded
datas=f->initial_time0
; carregando dados
u=f->U_GDS0_ISBL
v=f->V_GDS0_ISBL
data=1967031718 ; data = 17 / 03 / 1967 18:00
do n=1,43
if(data .eq. tempo(n))
indice=n
dtitulo=getSubString(datas(indice),0,9)
end if
end do
plot = new(2,graphic) ; variável q conterá dois gráficos
xwks = gsn_open_wks("ps","mapa") ; abre uma workstation
res = True
;---------- ASPECTOS GERAIS DOS CAMPOS -----------------------
res_at_gsnScale = True ; força eixos X-Y serem do mesmo tamanho
; Atributos dos contornos
res_at_cnInfoLabelOn = False ; desliga info intervalo contornos
res_at_sfXCStartV = min(u&g0_lon_3) ;
res_at_sfXCEndV = max(u&g0_lon_3) ; -> sem isso os campos não são plotados
res_at_sfYCStartV = min(u&g0_lat_2) ; (contornos)
res_at_sfYCEndV = max(u&g0_lat_2) ;
res_at_cnLevelSelectionMode = "ManualLevels" ; habilita escolha manual
res_at_cnLineLabelPlacementMode = "Constant"
; Atributos do mapa
res_at_mpOutlineBoundarySets = "National" ; Desenha divisoes politicas
res_at_pmTickMarkDisplayMode = "Always" ; Coloca info lat & lon
res_at_mpLimitMode = "LatLon" ; Limita o mapa.
res_at_mpMinLonF = 270 ; Dimensoes
res_at_mpMaxLonF = 330 ; maximas e minimas
res_at_mpMinLatF = -55 ; de lat/lon
res_at_mpMaxLatF = 15 ; do mapa
res_at_mpPerimOn = True
res_at_gsnDraw = False ; não desenha o gráfico imediatamente
res_at_gsnFrame = False ; não avança quadro, para desenhar os dois campos juntos
;---------- DETALHES DO PRIMEIRO CAMPO --------------------
res_at_tiMainString = ":F25:Vento Zonal 200 hPa" ; titulo 1
res_at_tiXAxisString = ":F25:longitude" ; titulo do eixo x
res_at_tiYAxisString = ":F25:latitude" ; titulo do eixo y
res_at_cnLevelSpacingF = 5 ; espaçamento entre contornos
plot(0) = gsn_contour_map(xwks,u(indice,{200},:,:),res) ; plota o grafico sobre o mapa
;---------- DETALHES DO SEGUNDO CAMPO (campo vetorial) -----------------------
resvec = True
resvec_at_gsnScale = True ; força eixos X-Y serem do mesmo tamanho
resvec_at_tiYAxisString = "" ; s/ título eixo y (usa o do primeiro)
resvec_at_tiMainString = ":F25:Vento Meridional 850 hPa" ; título 2
; Atributos para os vetores -> @vc...
resvec_at_vcRefMagnitudeF = 10.
resvec_at_vcRefLengthF = 0.045
resvec_at_vcMinDistanceF = 0.017
; Atributos do mapa -> @mp...
resvec_at_mpOutlineBoundarySets = "National" ; Desenha divisoes politicas
resvec_at_pmTickMarkDisplayMode = "Always" ; Coloca info lat & lon
resvec_at_mpLimitMode = "LatLon" ; Limita o mapa.
resvec_at_mpMinLonF = 270 ; Dimensoes
resvec_at_mpMaxLonF = 330 ; maximas e minimas
resvec_at_mpMinLatF = -55 ; de lat/lon
resvec_at_mpMaxLatF = 15 ; do mapa
resvec_at_mpPerimOn = True
resvec_at_mpFillOn = False ; desliga preenchimento cinza
resvec_at_gsnDraw = False ; não desenha o gráfico imediatamente
resvec_at_gsnFrame = False ; não avança quadro, para desenhar os dois campos juntos
plot(1) = gsn_csm_vector_map(xwks,u(indice,{850},:,:),v(indice,{850},:,:),resvec)
;------------ ESTADOS --------------------
resp = True ; liga características das linhas que fazem as
; divisões estaduais
resp_at_gsLineColor = "Foreground" ; cor das linhas
resp_at_gsLineThicknessF = 1.5 ; espessura das linhas
arquivos = systemfunc("ls estados/*.boundary") ; lista de arquivos com posicoes de fronteiras
narqs = dimsizes(arquivos) ; obtendo nro total de arquivos
poli = new(narqs,"graphic") ; vetor q conterá os linhas gráficas
poli2 = poli
do i=0,narqs-1 ; loop para ler os arquivos com info dos estados
front = asciiread( arquivos(i), -1, "float" ) ; le ptos lat/lon
nptos = dimsizes(front(0::2)) ; nro de pontos lat/lon
latlon = new((/2,nptos/),"float") ; criando matriz com lat/lon
latlon(0,:) = (/front(1::2)/) ; latitudes
latlon(1,:) = (/front(0::2)/) ; longitudes
poli(i) = gsn_add_polyline(xwks,plot(0),latlon(1,:),latlon(0,:),resp) ; adicionando linha
poli2(i) = gsn_add_polyline(xwks,plot(1),latlon(1,:),latlon(0,:),resp) ; adicionando linha
delete(front) ;
delete(nptos) ; ==> remove variáveis para que outras linhas possam ser desenhadas
delete(latlon) ;
end do
;---------- plotando os campos ----------------------
resP = True
resP_at_txString = "Campos de Vento para "+dtitulo
gsn_panel(xwks,plot,(/1,2/),resP)
;-------- usando ImageMagic p/ converter PS -> GIF
system("convert -trim -density 300 -geometry 1200x780 mapa.ps mapa.gif; rm mapa.ps")
end
_______________________________________________
ncl-talk mailing list
ncl-talk_at_ucar.edu
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
_______________________________________________________
Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. Registre seu aparelho agora!
http://br.mobile.yahoo.com/mailalertas/
This archive was generated by hypermail 2.2.0 : Mon Sep 25 2006 - 11:45:07 MDT