DangoMelon0701

plot_modis.pro

Nov 16th, 2016
316
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
IDL 2.24 KB | None | 0 0
  1. PRO PLOT_MODIS, LAT, LON
  2.  
  3. COMPILE_OPT IDL2
  4.  
  5. ;- Crear angulos grillados iguales
  6. ;- (la esquina inferior izquierda de la grilla esta a 180W, 90S, en efecto, -180.0, -90.0
  7. resolution = 1.0
  8. ncol = long(360.0 / resolution)
  9. nrow = long(180.0 / resolution)
  10. grid = fltarr(ncol, nrow)
  11.  
  12. ;- Obtener la lista de archivos grillados
  13. list = file_search('G:/AOD MODIS/AQUA/grid/*.grd')
  14. help, list
  15.  
  16. ;- Crear matrices de salida
  17. data = fltarr(n_elements(list))
  18. time = fltarr(n_elements(list))
  19. hour = intarr(n_elements(list))
  20. date = strarr(n_elements(list))
  21.  
  22. ;- Calcular los indices de la celda requerida
  23. lonlat_to_index, lon, lat, resolution, index
  24. help, index
  25.  
  26. ;- Bucle sobre los archivos grillados
  27. for i = 0, n_elements(list) - 1 do begin
  28.  
  29.   ;- Leer un archivo
  30.   input_file = list[i]
  31.   openr, lun, input_file, /get_lun
  32.   readu, lun, grid
  33.   free_lun, lun
  34.  
  35.   ;- Obtener data de la celda deseada
  36.   data[i] = grid[index]
  37.  
  38.   ;- Obtener el dia y año del nombre del archivo
  39.   year = long(strmid(basename(input_file), 0, 4))
  40.   day_of_year = long(strmid(basename(input_file), 4, 3))
  41.  
  42.   ;- Obtener el mes y el dia del mes
  43.   ydn2md, year, day_of_year, month, day
  44.  
  45.   ;- Obtener dia Juliano
  46.   time[i] = julday(month, day, year)
  47.   hour[i] = strmid(basename(input_file),8,4)
  48.   date [i] = string(day)+'-'+string(month)+'-'+string(year)
  49. endfor
  50.  
  51. help, data
  52. help, time
  53.  
  54. ;- Establecer los valores faltantes a NaN (Not a Number)
  55. loc = where(data lt 0.0, count)
  56. if (count gt 0) then data[loc] = !VALUES.F_NAN
  57.  
  58. ;- Calcular la serie de tiempo, suavizada sobre 16 dias
  59. smoothed_data =smooth(data, 16, /nan, /edge_truncate)
  60. print, smoothed_data
  61. ;- Cargar la tabla de escala de grises
  62. loadct, 0
  63.  
  64. ;- Plotear la data
  65. result = label_date(date_format=['%M %Y'])
  66. plot, time, smoothed_data, $
  67.   xrange=[min(time), max(time)], $
  68.   xstyle=1, $
  69.   psym=1, $
  70.   color=0, background=255, $
  71.   xtickunits='months', $
  72.   xtickformat='label_date', $
  73.   ytitle='Aerosol Optical Depth', $
  74.   title='Serie de tiempo MODIS en' + string(lat, lon, format='(2f8.2)')
  75.  
  76. ;- Guardar la data a plotear
  77. output_file = "G:/AOD MODIS/AQUA/" + string(fix(lat)) + "_" + string(fix(lon)) + ".csv"
  78. ;openw, lun, output_file, /get_lun
  79. write_csv, output_file, date,hour,smoothed_data
  80.  
  81. END
Add Comment
Please, Sign In to add comment