Baseline Surface Radiation Network (BSRN)#
The Baseline Surface Radiation Network (BSRN) is a global network of high-quality solar radiation monitoring stations under the World Climate Research Programme (WCRP) .
According to the World Radiation Monitoring Center (WRMC):
The data [from the BSRN stations] are of primary importance in supporting the validation and confirmation of satellite and computer model estimates of these quantities. At a small number of stations (currently 74 in total, 58 active) in contrasting climatic zones, covering a latitude range from 80°N to 90°S, solar and atmospheric radiation is measured with instruments of the highest available accuracy and with high time resolution.
All BSRN stations are required to meet the basic station requirements. A list of activate, inactive, and candidate BSRN stations can be retrieved from the SolarStations station listing and are shown below.
Show code cell content Hide code cell content
import pandas as pd stations = pd.read_csv('solarstations.csv', sep=';', encoding='latin1') stations = stations[stations['Network'].str.contains('BSRN')] stations['Time period'] = stations['Time period'].astype(str).replace('nan','') stations
|Station full name||Abbreviation||State||Country||Latitude||Longitude||Elevation||Time period||Network||Unnamed: 9||Comment||URL||Tier 2||Instrument|
|0||Abashiri||ABS||NaN||Japan||44.0178||144.2797||38.0||2021-||BSRN||NaN||Candidate station (no. 86)||NaN||1||Thermopile|
|2||Alice Springs||ASP||Northern Territory||Australia||-23.7980||133.8880||547.0||1995-||BSRN||NaN||NaN||NaN||1||Thermopile|
|75||Terra Nova Bay||TNB||NaN||Antarctica||-74.6223||164.2283||28.0||BSRN||NaN||Candidate Station (no. 89)||https://gml.noaa.gov/grad/meetings/BSRN2018_do...||1||Thermopile|
|77||Xianghe||XIA||NaN||China||39.7540||116.9620||32.0||2005-2016||BSRN||NaN||Station obstructed, no longer in BSRN since 2016||NaN||1||Thermopile|
79 rows × 14 columns
As a mimimum a BSRN station is required to measure global horizontal irradiance (GHI), direct normal irradiance (DNI), diffuse horizontal irradiance (DHI),
Additional metadata may be found at the BSRN website and in the individual data files (e.g., horizon profile).
Unlike the majority of solar radiation monitoring networks, the BSRN website does not have a subpage for each station (with photos, etc.). This would have been very useful when assessing the usage of the station, for example in regards to the potential impact of nearby structures, etc. Note a few photos of the BSRN stations can be found here. There station log books are also not available. It should also be noted that the files on the FTP server do not include wind speed and direction.
Data from the BSRN stations is stored in monthly files for each station and can be freely downloaded either via FTP or Pangea. Credentials for accessing the BSRN FTP server can be obtained as described in the data release guidelines.
Data release guidelines
Please read the BSRN data release guidelines before using any data and make sure to properly cite the BSRN.
WRMC highly recommends that all users do their own quality checks of the data after extracting BSRN-data!
The data can also be downloaded programmatically using the pvlib-python library, specifically the
get_bsrn function. An example of how to use pvlib to download two months of data from the Cabauw (CAB) station is shown below:
import pvlib df, meta = pvlib.iotools.get_bsrn( station='CAB', # three letter code for the Cabauw station start=pd.Timestamp(2018,6,1), end=pd.Timestamp(2018,7,14), username=bsrn_username, # replace with your own username password=bsrn_password, # replace with your own password ) df.head(12)
For a description of the input parameters, see the pvlib documentation.
Retrieving BSRN data in R
R users can find similar functionality in the SolarData R package.
The data retrieved from all BSRN stations includes measurements of the three irradiance components, as well as longwave downwelling irradiance, temperature humidity, etc.
A few of the parameters in the datasets for the month of data are visualized below.
Show code cell source Hide code cell source
axes = df[['ghi','dni','dhi','lwd','temp_air']].plot( subplots=True, legend=False, rot=0, figsize=(8,8), sharex=True) # Set y-labels and y-limits axes.set_ylabel('GHI [W/m$^2$]'), axes.set_ylim(-10,1300) axes.set_ylabel('DNI [W/m$^2$]'), axes.set_ylim(-10,1300) axes.set_ylabel('DHI [W/m$^2$]'), axes.set_ylim(-10,1300) axes.set_ylabel('LWD [W/m$^2$]'), axes.set_ylim(200,500) _ = axes.set_ylabel('Temperature [°]'), axes.set_ylim(0,40)
Notice how that they are multiple periods where there is gaps in the irradiance data.