ContourPlotInitialize: no valid values in scalar field; ContourPlot not possible:[errno=1101]

From: ugo merlini <ugomerlini_at_nyahnyahspammersnyahnyah>
Date: Tue Oct 18 2011 - 13:10:53 MDT

Hi,

i'm getting this error and is referred to precipitazioni_convettive_plot I don't understand where the error is (probably i'm loosing myself in a glass of water)

any sguggestion?

Regards

Ugo

NCL script

;----------------------------------------------------------------------
; This example shows how to read geographic data
; from Natural Earth shapefiles
; and plot them as polylines and polygons.
;----------------------------------------------------------------------
; This particular example plots data for Switzerland.
;----------------------------------------------------------------------
; Download the shapefiles from http://www.naturalearthdata.com/
; Unzip to a directory
;----------------------------------------------------------------------

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/contributed.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/contrib/calendar_decode2.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/contrib/ut_string.ncl"

;****************************
; Funzioni personalizzate *
;****************************

; funzione Data validità

undef("Nuova_data")
function Nuova_data(data:string)
local anno, mese, giorno, ora, formato_data, data, data_intermedia_1, data_intermedia_2, data_intermedia_3, data_intermedia_4, segsDims, geomDims, fnames, fillcolors, thicks

begin

  anno = stringtointeger( str_get_cols( data, 0, 3) )
  mese = stringtointeger( str_get_cols( data, 4, 5) )
  giorno = stringtointeger( str_get_cols( data, 6, 7) )
  ora = stringtointeger( str_get_cols( data, 8, 9) )
  formato_data = "hours since 1800-01-01 00:00:00"

  data_intermedia_1 = cd_inv_calendar( anno, mese, giorno, ora, 0, 0, formato_data, 0 )

  ; since data_intermedia_1 has the units "hours since ..." the 2 here adds 2 hours
  data_intermedia_2 = data_intermedia_1 + 2
  data_intermedia_2@units = formato_data
  

  data_intermedia_3 = cd_calendar( data_intermedia_2, -3 )
  

  data_intermedia_4 = sprinti ( "%0.8i", data_intermedia_3 )
  
  ymd2String=str_get_cols ( data_intermedia_4, 0, 7 )
  hr2String =str_get_cols ( data_intermedia_4, 8, 9 )

  data_intermedia_5 = systemfunc( "date -d '"+ymd2String+" "+hr2String+"' '+%A, %d/%m/%Y ore %H:00'" )
  
  if ((str_get_cols( data_intermedia_5, 0, 6) ).eq.("lunedì")) then
    nuova_data = "Lunedi~H-10V2F35~A~FV-2H3~"+ str_get_cols( data_intermedia_5, 7, strlen(data_intermedia_5)-1 )
  end if
  if ((str_get_cols( data_intermedia_5, 0, 7) ).eq.("martedì")) then
    nuova_data = "Martedi~H-10V2F35~A~FV-2H3~" + str_get_cols( data_intermedia_5, 8, strlen(data_intermedia_5)-1 )
  end if
  if ((str_get_cols( data_intermedia_5, 0, 9) ).eq.("mercoledì")) then
    nuova_data = "Mercoledi~H-10V2F35~A~FV-2H3~" + str_get_cols( data_intermedia_5, 10, strlen(data_intermedia_5)-1 )
  end if
  if ((str_get_cols( data_intermedia_5, 0, 7) ).eq.("giovedì")) then
    nuova_data = "Giovedi~H-10V2F35~A~FV-2H3~" + str_get_cols( data_intermedia_5, 8, strlen(data_intermedia_5)-1 )
  end if
  if ((str_get_cols( data_intermedia_5, 0, 7) ).eq.("venerdì")) then
    nuova_data = "Venerdi~H-10V2F35~A~FV-2H3~" + str_get_cols( data_intermedia_5, 8, strlen(data_intermedia_5)-1 )
  end if
  if ((str_get_cols( data_intermedia_5, 0, 5) ).eq.("sabato")) then
    nuova_data = "Sabato" + str_get_cols( data_intermedia_5, 6, strlen(data_intermedia_5)-1 )
  end if
  if ((str_get_cols( data_intermedia_5, 0, 7) ).eq.("domenica")) then
    nuova_data = "Domenica" + str_get_cols( data_intermedia_5, 8, strlen(data_intermedia_5)-1 )
  end if
 
  
  return (nuova_data)

end

;**********************
; Codice principale *
;**********************

begin

;*****************************************
; Open workstation and define colormap *
;*****************************************

  wks_type = "png" ; use "newpdf" instead of "pdf" for smaller files
  wks_type@wkWidth = 1200
  wks_type@wkHeight = 1200
  wks = gsn_open_wks(wks_type,"File_temporaneo_precipitazioni")
  gsn_define_colormap(wks,"rainbow+white+gray") ; choose colormap

  
  
  
  
  
;******************
; read gfs data *
;******************

    systemdate = systemfunc("date +%H%M")
 
  if ((systemdate.eq."0645"))then
      url = "http://nomads.ncep.noaa.gov:9090/dods/gfs_hd/gfs_hd" + systemfunc("date +%Y%m%d") + "/"
      filename = url + "gfs_hd_00z"
      run = "Run GFS 00 del " + systemfunc("date +%d/%m/%Y")
      run_nome_file = "Run_GFS_00Z"
  end if
  if ((systemdate.eq."1245")) then
      url = "http://nomads.ncep.noaa.gov:9090/dods/gfs_hd/gfs_hd" + systemfunc("date +%Y%m%d") + "/"
      filename = url + "gfs_hd_06z"
      run = "Run GFS 06 del " + systemfunc("date +%d/%m/%Y")
      run_nome_file = "Run_GFS_06Z"
  end if
  if ((systemdate.eq."1845")) then
      url = "http://nomads.ncep.noaa.gov:9090/dods/gfs_hd/gfs_hd" + systemfunc("date +%Y%m%d") + "/"
      filename = url + "gfs_hd_12z"
      run = "Run GFS 12 del " + systemfunc("date +%d/%m/%Y")
      run_nome_file = "Run_GFS_12Z"
  end if
  if ((systemdate.eq."0045")) then
      url = "http://nomads.ncep.noaa.gov:9090/dods/gfs_hd/gfs_hd" + systemfunc("date -d '-1 day' +'%Y%m%d'") + "/"
      filename = url + "gfs_hd_18z"
      run = "Run GFS 18 del " + systemfunc("date -d '-1 day' +'%d/%m/&Y'")
      run_nome_file = "Run_GFS_18Z"
  end if

   url = "http://nomads.ncep.noaa.gov:9090/dods/gfs_hd/gfs_hd20111018/"
   filename = url + "gfs_hd_00z"
   run = "Run GFS 00 del " + systemfunc("date +%d/%m/%Y")
   run_nome_file = "Run_GFS_00Z"
  
   exists = isfilepresent(filename)
  if(.not.exists) then
    print("OPeNDAP isfilepresent test unsuccessful.")
    print("Either file doesn't exist, or NCL does not have OPeNDAP capabilities on this system")
  else
    print("OPeNDAP isfilepresent test successful.")
    gfs = addfile(filename,"r")
    vars = getfilevarnames(gfs)
  end if
  
  
  
  
  
;*********************************
; risorse per la mappa di base *
;*********************************
  mappa = True ; plot mods desired
  mappa@mpProjection = "LambertConformal" ; choose projection
  
  mappa = True ; plot mods desired
 
  mappa@gsnMaximize = True
  mappa@gsnDraw = False ; do not draw the plot
  mappa@gsnFrame = False ; do not flip the page
  
  mappa@mpProjection = "LambertConformal" ; choose projection
  mappa@mpLimitMode = "LatLon"
  mappa@mpMaxLonF = 47.0
  mappa@mpMaxLatF = 88.5
  mappa@mpMinLatF = 27.0
  mappa@mpMinLonF = -43.0
  mappa@mpGridAndLimbOn = True ; turn on grid lines
  mappa@mpGridLineDashPattern = 10 ; lat/lon lines dashed
 
;******************************
; risorse generali dei plot *
;******************************
  
  plot_generale= True
  plot_generale@gsnMaximize = True
  plot_generale@gsnDraw = False ; do not draw the plot
  plot_generale@gsnFrame = False ; do not flip the page
  plot_generale@gsnAddCyclic = True
  plot_generale@gsnSpreadColors = False ; turn off the use entire color map
  plot_generale@gsnRightString = "" ; turn off right string
  plot_generale@gsnLeftString = ""
  

 
;*******************************
; risorse generali dei testi *
;*******************************
  testo_generale = True
  testo_generale@txFont = "times-roman" ; font
  testo_generale@txBackgroundFillColor = "Transparent"
  

  testo_titolo = testo_generale
  testo_titolo@txFontHeightF = 0.02 ; set the label size
  testo_titolo@txJust = "CenterLeft"
  testo_titolo@txPosXF = 0.02
  testo_titolo@txPosYF = 0.885
  
  testo_modello = testo_generale
  testo_modello@txFontHeightF = 0.015
  testo_modello@txJust = "BottomLeft"
  testo_modello@txPosXF = 0.02 ; Rough approximation
  testo_modello@txPosYF = 0.851
 
  
  testo_data = testo_generale
  testo_data@txFontHeightF = 0.015
  testo_data@txJust = "BottomRight"
  testo_data@txPosXF = 0.98 ; Rough approximation
  testo_data@txPosYF = 0.85
 
 
 
 
 
 

  drawNDCGrid(wks)
  
;******************************
; generazione mappa di base *
;******************************

  map = gsn_csm_map(wks,mappa)

  fnames = "/mnt/internetserver/map/shapefile/europa/aaa_full/" + (/"europa"/) + ".shp" ; Files to be open
  linecolors = (/"Black"/) ; color definition for each shapefile
  fillcolors = (/"Transparent"/) ; Fill color definition for each shapefile
  thicks = (/2/) ; Thickness for each shapefile
  lnres = True ; resources for polylines
  plres = True
  prims = True
  lines = True
  do n=0,dimsizes(fnames)-1 ; Loop through files that we want to read geographic information from.
   f = addfile(fnames(n),"r") ; Open the shapefile number n.
   segments = f->segments ; Read data off the shapefile
   geometry = f->geometry
   segsDims = dimsizes(segments)
   geomDims = dimsizes(geometry)
   geom_segIndex = f@geom_segIndex ; Read global attributes
   geom_numSegs = f@geom_numSegs
   segs_xyzIndex = f@segs_xyzIndex
   segs_numPnts = f@segs_numPnts
   geometry_type = f@geometry_type
   numFeatures = geomDims(0)
   lon = f->x
   lat = f->y
   if (geometry_type.eq."polygon") then ; Put if statement outside the loop
      plres@gsFillColor = fillcolors(n)
      plres@gsEdgesOn = True ; Draw border around polygons
      plres@gsEdgeColor = linecolors(n)
      plres@gsEdgeThicknessF = thicks(n)
      do i=0, numFeatures-1 ; Section to draw polygons on map.
        startSegment = geometry(i, geom_segIndex)
        numSegments = geometry(i, geom_numSegs)
        do seg=startSegment, startSegment+numSegments-1
          startPT = segments(seg, segs_xyzIndex)
          endPT = startPT + segments(seg, segs_numPnts) - 1
          dumstr = unique_string("lines") ; This call adds the polygon.
          map@$dumstr$ = gsn_add_polygon(wks, map , lon(startPT:endPT), lat(startPT:endPT), plres)
        end do
      end do
   else
      lnres@gsLineThicknessF = thicks(n)
      lnres@gsLineColor = linecolors(n)
      do i=0, numFeatures-1 ; Section to draw polylines on map.
        startSegment = geometry(i, geom_segIndex)
        numSegments = geometry(i, geom_numSegs)
        do seg=startSegment, startSegment+numSegments-1
          startPT = segments(seg, segs_xyzIndex)
          endPT = startPT + segments(seg, segs_numPnts) - 1
          dumstr = unique_string("primitive") ; This call adds the line segment.
          map@$dumstr$ = gsn_add_polyline(wks, map, lon(startPT:endPT), lat(startPT:endPT), lnres)
        end do
      end do
   end if
   delete(lat) ; Clean up before we read in same variables again.
   delete(lon)
   delete(segments)
   delete(geometry)
   delete(segsDims)
   delete(geomDims)
  end do

;******************
; Precipitazioni *
;******************

; Risorse

  precipitazioni = plot_generale
  precipitazioni@cnLinesOn = False ; turn on contour lines
  precipitazioni@cnLineLabelsOn = False ; turn on contour labels
  precipitazioni@cnFillOn = True ; turn on color
  precipitazioni@cnLevelSelectionMode = "ExplicitLevels" ; set how manage contour line levels
  precipitazioni@cnLevels = (/0.00,0.01,0.02,0.03,0.04,0.05,0.06,0.07,0.08,0.09,0.10,0.20,0.30,0.40,0.50,0.60,0.70,0.80,0.90,1.00,1.50,2.00,2.50,3.00,3.50,4.00,4.50,5.00,5.50,6.00,6.50,7.00,7.50,8.00,8.50,9.00,9.50,10.00,10.50,11.00,11.50,12.00,12.50,13.00,13.50,14.00,14.50,15.00,16.00,17.00,18.00,19.00,20.00,21.00,22.00,23.00,24.00,25.00,30.00,35.00,40.00,45.00,50.00,55.00,60.00,65.00,70.00,75.00,80.00,85.00,90.00,95.00,100.00,105.00,110.00,115.00,120.00,125.00/)
  precipitazioni@cnFillColors = (/238,238,238,238,238,238,238,238,238,238,90,92,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,166,168,170,172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224/)
  
    
  precipitazioni_convettive = plot_generale
  precipitazioni_convettive@cnLinesOn = True
  precipitazioni_convettive@cnLineLabelsOn = False ; turn on contour labels
  precipitazioni_convettive@cnFillOn = False ; turn off color
  precipitazioni_convettive@cnMonoLineDashPattern = True
  precipitazioni_convettive@cnLineDashPattern = 12
  precipitazioni_convettive@cnLevelSelectionMode = "ExplicitLevels" ; set how manage contour line levels
  precipitazioni_convettive@cnLevels = (/0.00,0.01,0.02,0.03,0.04,0.05,0.06,0.07,0.08,0.09,0.10,0.20,0.30,0.40,0.50,0.60,0.70,0.80,0.90,1.00,1.50,2.00,2.50,3.00,3.50,4.00,4.50,5.00,5.50,6.00,6.50,7.00,7.50,8.00,8.50,9.00,9.50,10.00,10.50,11.00,11.50,12.00,12.50,13.00,13.50,14.00,14.50,15.00,16.00,17.00,18.00,19.00,20.00,21.00,22.00,23.00,24.00,25.00,30.00,35.00,40.00,45.00,50.00,55.00,60.00,65.00,70.00,75.00,80.00,85.00,90.00,95.00,100.00,105.00,110.00,115.00,120.00,125.00/)
  precipitazioni_convettive@cnMonoLineColor = False ; turn off auto contour line colors
  precipitazioni_convettive@cnLineColors = (/"Transparent","Transparent","Transparent","Transparent","Transparent","Transparent","Transparent","Transparent","Transparent","Transparent","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red","Red"/)
  precipitazioni_convettive@lbLabelsOn = False
 
  ;precipitazioni_neve = plot_generale
  ;precipitazioni_neve@cnLinesOn = False ; turn on contour lines
  ;precipitazioni_neve@cnFillOn = True ; turn on color
  ;precipitazioni_neve@cnLevelSelectionMode = "ManualLevels" ; set how manage contour line levels
  ;precipitazioni_neve@cnLevels = (/0,1/)
  ;precipitazioni_neve@cnFillPatterns = (/0,17/)
  ;precipitazioni_neve@cnFillColors = (/"Transparent","White"/)
 
 
 
 
 
 
 
 
 

 

 
 
 
 
 
 ;precipitazioni@lbAutoManage = False
;precipitazioni@lbLabelsOn = True ; turn on the labels
 ;precipitazioni@lbLabelAutoStride = True ; let NCL determine label spacing
 ;precipitazioni@lbLeftMarginF = 0.02
 ;precipitazioni@lbOrientation = "horizontal" ; label orientation
 ;precipitazioni@lbBoxLinesOn = True ; turn on lines between labelbar colors
 ;precipitazioni@lbLabelFont= "times-roman" ; font
 ;precipitazioni@lbLabelFontHeightF= 0.0045 ; set the label size
 ;precipitazioni@lbLabelAlignment = "BoxCenters"
 ;precipitazioni@pmLabelBarHeightF = 0.002
 ;precipitazioni@lbLabelStride = 5 ; label every other box
 ;precipitazioni@lbMonoFillColor = False
 ;precipitazioni@lbBoxCount = 148
 ;precipitazioni@lbBoxLinesOn = True
 ;precipitazioni@lbFillColors = (/90,90,90,90,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236/)

 ; Dati per plot

  
  PIOGGIA = (gfs->cwatclm(:,:,:)) ; Rain
  PIOGGIA_CONVETTIVA = (gfs->acpcpsfc(:,:,:)) ; Convective rain
  ;NEVE = gfs->csnowsfc(:,:,:) ;snow
  print(PIOGGIA_CONVETTIVA)
   
  NTIMES = dimsizes(gfs->time) ; number of times in the file
  
  do it = 0,10 ;NTIMES-1
    testo_titolo_plot = gsn_create_text(wks,"Precipitazioni accumultate nelle ultime 3 ore",testo_titolo)
    draw(testo_titolo_plot)
    testo_modello_plot = gsn_create_text(wks,(run),testo_modello)
    draw(testo_modello_plot)
    testo_data_plot = gsn_create_text(wks, (Nuova_data(ut_string(gfs->time(it),"%Y%N%D%H"))),testo_data)
    draw(testo_data_plot) ; Draw text box.
    
    precipitazioni_plot = gsn_csm_contour(wks,PIOGGIA(it,:,:),precipitazioni)
    overlay(map,precipitazioni_plot)
    draw(map)
    precipitazioni_convettive_plot = gsn_csm_contour(wks,PIOGGIA_CONVETTIVA(it,:,:),precipitazioni_convettive)
    overlay(map,precipitazioni_convettive_plot)
    draw(map)
    ;precipitazioni_neve_plot = gsn_contour(wks,NEVE(it,:,:),precipitazioni_neve)
    ;overlay(map,precipitazioni_neve_plot)
    ; precipitazioni_neve_plot = gsn_contour(wks,NEVE(it,:,:),precipitazioni_neve)
      
        
    
    
    ;draw(map)
    
    
    ;destroy(precipitazioni_plot)
    
    ;destroy(precipitazioni_convettive_plot)
    ;destroy(precipitazioni_neve_plot)
    frame(wks)
  end do
  do it = 0,10 ;NTIMES-1
    if (it.le.8) then
        system("mv File_temporaneo_precipitazioni.00000" + (it+1) + ".png" + " Precipitazioni0" + (it) + "_" + (run_nome_file) + ".png")
        
      end if
   if (it.eq.9) then
        system("mv File_temporaneo_precipitazioni.0000" + (it+1) + ".png" + " Precipitazioni0" + (it) + "_" + (run_nome_file) + ".png")
   end if
    if (it.ge.10) then
        system("mv File_temporaneo_precipitazioni.0000" + (it+1) + ".png" + " Precipitazioni" + (it) + "_" + (run_nome_file) + ".png")
    end if
  end do

end

                                               

_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Tue Oct 18 13:11:03 2011

This archive was generated by hypermail 2.1.8 : Wed Oct 19 2011 - 13:36:10 MDT