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
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