tips for Dagik

dagiktips

counter

Dagik: Time bar

sample

#!/usr/bin/env ruby
# ==================================================
# sample timebar script
# $last update: 2007-04-07 16:50:09 daiki $
# ==================================================

# ========== panel size
PANEL_WIDTH  = 0.360
PANEL_HEIGHT = 0.300

# ========== northwest panel (Non-Earth data plot)
OFFSET_X_NW = 0.050
OFFSET_Y_NW = 0.650

# ========== southwest panel (Index plot)
OFFSET_X_SW = 0.050
OFFSET_Y_SW = 0.035

# ========== southeast panel (Data plot)
OFFSET_X_SE = 0.630
OFFSET_Y_SE = 0.035

# ========== bar [min]
BAR_STEP = 10
BAR_ICON = 'red.gif'



# ==================================================
def kml_timebar(year, month, day,
                offset_x = OFFSET_X_SE, offset_y = OFFSET_Y_SE,
                width = PANEL_WIDTH, height = PANEL_HEIGHT,
                step = BAR_STEP, icon = BAR_ICON)

  t_start = Time.mktime(year, month, day)
  t_end = t_start + 86400
  t_tmp = t_start
  t_leap = step * 60

  bar_width  = width * t_leap / 86400
  bar_height = height
  bar_offset_y = offset_y


  kml = %Q[
  <Folder>
    <name>Time Bar</name>
]


  while(t_tmp < t_end)
    bar_offset_x = offset_x + width * (t_tmp - t_start) / 86400
    t_tmp2 = t_tmp + t_leap - 1

    kml << %Q[
    <ScreenOverlay>
      <drawOrder>1</drawOrder>
      <Icon><href>#{icon}</href></Icon>
      <TimeSpan>
        <begin>#{t_tmp.strftime("%04Y-%02m-%02dT%02H:%02M:%02SZ")}</begin>
        <end>#{t_tmp2.strftime("%04Y-%02m-%02dT%02H:%02M:%02SZ")}</end>
      </TimeSpan>
      <overlayXY x="0" y="0" xunits="fraction" yunits="fraction"/>
      <screenXY x="#{bar_offset_x}" y="#{bar_offset_y}" xunits="fraction" yunits="fraction"/>
      <size x="#{bar_width}" y="#{bar_height}" xunits="fraction" yunits="fraction"/>
      <color>80ffffff</color>
    </ScreenOverlay>
]
    t_tmp += t_leap
  end


  kml << "\n  </Folder>\n"

  return kml
end





# ================================================== test
kml = %Q[<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.0">
<Document>
]

kml << kml_timebar(2003, 10, 22)
kml << kml_timebar(2003, 10, 22, OFFSET_X_NW, OFFSET_Y_NW)
kml << kml_timebar(2003, 10, 22, OFFSET_X_SW, OFFSET_Y_SW)

kml << "\n</Document>\n</kml>\n"


$stdout.print kml

exit