hi obet,

been busy lately but here is your python script (see email attached
also) using matplotlib...

$ cat -n wesm.py
     1  #!/bin/env python
     2
     3  from urllib2 import urlopen
     4  from datetime import datetime, timedelta
     5  from  matplotlib import pyplot as plt
     6
     7  dem_target = 7000
     8  lwap_target = 2000
     9
    10  today = datetime.today()
    11  date = (today - timedelta(days=int(not
bool(today.hour)))).strftime('%Y%m%d')
    12  hour = today.hour + 24 * int(not bool(today.hour))
    13
    14  url = 
urlopen('http://www.wesm.ph/chart/export/luzon_dmd_csv_export.php?date='
+ date + '&hour=' + str(hour).zfill(2))
    15  luzon_str = url.read().replace('\n', ',' + str(dem_target) +
',' + str(lwap_target) + '\n').replace(' ','').splitlines()[1:25]
    16
    17  # HOUR, DEM_DAPEL, DEM_RTDEL, DEM_RTXEL, LWAP_DAPEL,
LWAP_RTDEL, LWAP_RTXEL, DEM_TARGET, LWAP_TARGET
    18  luzon_data = [list(row) for row in zip(*[[float(column or
'nan') for column in row.split(',')] for row in luzon_str])]
    19
    20  plt.plot(luzon_data[0], luzon_data[7], 'r.-', label='Target')
    21  plt.plot(luzon_data[0], luzon_data[1], 'y.-', label='Day Ahead
Projection (DAP)')
    22  plt.plot(luzon_data[0], luzon_data[2], 'c.-', label='Hour
Ahead Projection (RTD)')
    23  plt.plot(luzon_data[0], luzon_data[3], 'b.-', label='Current
Demand (RTX)')
    24  plt.title('Luzon Market Demand - ' + today.strftime('%B %d,
%Y') + '\n' + 'Current Hour Demand: ' + str(luzon_data[3][hour - 2]) +
' MW' )
    25  plt.xlabel('Hours')
    26  plt.ylabel('MEGAWATTS')
    27  plt.xticks(range(1,25))
    28  plt.grid(linestyle=':')
    29  plt.legend(loc='center', frameon=False, bbox_to_anchor=(0.5,
-0.2), fontsize='small')
    30  plt.savefig(date + str(hour).zfill(2) + '.png', format='png',
bbox_inches='tight')

the bash script is not able to manage if hour is 24 as i forgot to
write an equation for that.. .but for python script... line 11 and 12
will take care of that... if hour is 24, it will adjust the date a day
before and set hour to 24..

line 15 reformat the csv format and added "dem_target" and
"lwap_target" found in line 7 and 8..

line 18 converted line 15 to a 2 dimensional array and the index
description of the first dimension is found at line 17.. the second
dimension is the value from hour 1 to 24...

fooler.

On Sun, Apr 5, 2015 at 11:37 PM, Roberto Verzola <rverz...@gn.apc.org> wrote:
>> what i noticed with that url.. it just updated every hour... 5 minutes
>> after an hour is already good enough... that script is idempotent...
>> meaning if you run several times on the same hour.. it will give you
>> the same results....
>
>
> Yes, updates are hourly, but apparently not always at the same time.
> Sometimes 10 mins after the hour, you get an empty .csv file, rather
> than old data. Sometimes, it takes more than 15 min. before the next
> update is available. (Maybe they update manually???)
>
>
> _________________________________________________
> Philippine Linux Users' Group (PLUG) Mailing List
> http://lists.linux.org.ph/mailman/listinfo/plug
> Searchable Archives: http://archives.free.net.ph

Attachment: wesm.py
Description: Binary data

_________________________________________________
Philippine Linux Users' Group (PLUG) Mailing List
http://lists.linux.org.ph/mailman/listinfo/plug
Searchable Archives: http://archives.free.net.ph

Reply via email to