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