R example

This is an API access example using token-based authentication with R.

require(curl)

token = 'your_token_here'

s = new_handle()
# Send token header with each request
handle_setheaders(s, 'Authorization'=paste('Token', token))



##
# PV example
##

api_base = 'https://www.renewables.ninja/api/data/pv'

# Set your input parameters
args = list(
    'lat' = 34.125,
    'lon' = 39.814,
    'date_from' = '2014-01-01',
    'date_to' = '2014-12-31',
    'dataset' = 'merra2',
    'capacity' = 1.0,
    'system_loss' = 0.10,
    'tracking' = 0,
    'tilt' = 35,
    'azim' = 180,
    'format' = 'csv',
    'metadata' = 'false'
)

# Build the URL
args = paste(names(args), args, sep='=', collapse='&')
url = paste0(api_base, '?', args)

# Read the data as CSV
req = curl(url, handle=s)
csv = read.csv(req, skip=3, stringsAsFactors=FALSE)

# Format the time column
csv$time = as.POSIXct(csv$time, format="%Y-%m-%d %H:%M")

# Visualise
plot(csv, type='l')

Getting wind data works analogously:

##
# Wind example
##

api_base = 'https://www.renewables.ninja/api/data/pv'

# Set your input parameters
args = list(
    'lat' = 34.125,
    'lon' = 39.814,
    'date_from' = '2014-01-01',
    'date_to' = '2014-12-31',
    'capacity' = 1.0,
    'height' = 100,
    'turbine' = 'Vestas V80 2000',
    'format' = 'csv',
    'metadata' = 'false'
)

# Build the URL
args = paste(names(args), args, sep='=', collapse='&')
url = paste0(api_base, '?', args)

# Read the data as CSV
req = curl(url, handle=s)
csv = read.csv(req, skip=3, stringsAsFactors=FALSE)

# Format the time column
csv$time = as.POSIXct(csv$time, format="%Y-%m-%d %H:%M")

# Visualise
plot(csv, type='l')