You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 2 Next »
This example creates a request for a Time Series Scalar Data data product for the Barkley Canyon / Axis (POD 1) 150 kHz ADCP and returns information about the request. The returns a Request Id, which can be used to run the data product.
Python
import requests import json url = 'http://dmas.uvic.ca/api/dataProductDelivery' parameters = {'method':'request', 'token':'YOUR_TOKEN_HERE', # replace YOUR_TOKEN_HERE with your personal token obtained from the 'Web Services API' tab at http://dmas.uvic.ca/Profile 'locationCode':'BACAX', # Barkley Canyon / Axis (POD 1) 'deviceCategoryCode':'ADCP2MHZ', # 150 kHz Acoustic Doppler Current Profiler 'dataProductCode':'TSSD', # Time Series Scalar Data 'extension':'csv', # Comma Separated spreadsheet file 'begin':'2016-07-27T00:00:00.000Z', 'end':'2016-08-01T00:00:00.000Z', 'dpo_qualityControl':1, 'dpo_resample':'none', 'dpo_dataGaps':0} response = requests.get(url,params=parameters) if (response.ok): requestInfo = json.loads(str(response.content,'utf-8')) # convert the json response to an object print('Request Id: {}'.format(requestInfo['dpRequestId'])) # Print the Request Id if ('numFiles' in requestInfo.keys()): print('File Count: {}'.format(requestInfo['numFiles'])) # Print the Estimated File Size if ('fileSize' in requestInfo.keys()): print('File Size: {}'.format(requestInfo['fileSize'])) # Print the Estimated File Size if 'downloadTimes' in dpRequest.keys(): print('Estimated download time:') for e in sorted(dpRequest['downloadTimes'].items(),key=lambda t: t[1]): print(' {} - {} sec'.format(e[0],'{:0.2f}'.format(e[1]))) if 'estimatedFileSize' in dpRequest.keys(): print('Estimated File Size: {}'.format(dpRequest['estimatedFileSize'])) if 'estimatedProcessingTime' in dpRequest.keys(): print('Estimated Processing Time: {}'.format(dpRequest['estimatedProcessingTime'])) else: if(response.status_code == 400): error = json.loads(str(response.content,'utf-8')) print(error) # json response contains a list of errors, with an errorMessage and parameter else: print ('Error {} - {}'.format(response.status_code,response.reason))
MatLab
options = weboptions('Timeout',60); try requestInfo = webread('http://dmas.uvic.ca/api/dataProductDelivery',... 'method','request',... 'token','YOUR_TOKEN_HERE',... %replace YOUR_TOKEN_HERE with your personal token obtained from the 'Web Services API' tab at http://dmas.uvic.ca/Profile 'locationCode','BACAX',... %Barkley Canyon / Axis (POD 1) 'deviceCategoryCode','ADCP2MHZ',... %150 kHz Acoustic Doppler Current Profiler 'dataProductCode','TSSD',... %Time Series Scalar Data 'extension','csv',... %Comma Separated spreadsheet file 'begin','2016-07-27T00:00:00.000Z',... 'end':'2016-08-01T00:00:00.000Z',... 'dpo_qualityControl',1,... 'dpo_resample','none',... 'dpo_dataGaps',0,... options); disp(requestInfo) catch ME if (strcmp(ME.identifier,'MATLAB:webservices:HTTP400StatusCodeError')) disp(ME.message); else disp(ME); end end
R
library(httr) r <- GET("http://dmas.uvic.ca/api/dataProductDelivery", query = list(method="get", token="YOUR_TOKEN_HERE", #>replace YOUR_TOKEN_HERE with your personal token obtained from the 'Web Services API' tab at http://dmas.uvic.ca/Profile locationCode="BACAX", #>Barkley Canyon / Axis (POD 1) deviceCategoryCode="ADCP2MHZ", #>150 kHz Acoustic Doppler Current Profiler dataProductCode="TSSD", #>Time Series Scalar Data extension="csv", #>Comma Separated spreadsheet file begin="2016-07-27T00:00:00.000Z", end="2016-08-01T00:00:00.000Z", dpo_qualityControl=1, dpo_resample="none", dpo_dataGaps=0)) if (http_error(r)) { if (r$status_code == 400){ error = content(r) str(error) } else { str(http_status(r)$message) } } else { requestInfo = content(r) str(requestInfo) }
- No labels