🆕Getting started
This guide provides an overview of how to get started using the OS Net API, covering the core elements on how to automate the download of OS Net RINEX.
What you need?
A basic understanding of automatic processing of JSON data and basic procedural (if-then-else) programming.
A text editor like Visual Studio Code.
Instructions
Prerequisites
Node.js installed
Axios module installed (
npm install axios
)Basic understanding of JSON and procedural logic
API key or OAuth2 token for authentication
A text editor like Visual Studio Code
Example: Automating RINEX File Downloads
This script fetches available RINEX files for a specific station and date, then downloads them to a local folder.
const axios = require('axios');
const fs = require('fs');
const path = require('path');
// Replace with your actual API key
const API_KEY = 'YOUR_API_KEY_HERE';
// Example parameters
const stationId = 'ABEP';
const year = 2025;
const dayOfYear = 1;
const listFilesUrl = `https://api.os.uk/positioning/osnet/v1/rinex/${year}/${dayOfYear}`;
const downloadDir = './downloads';
async function downloadRinexFiles() {
try {
const response = await axios.get(listFilesUrl, {
headers: { 'key': API_KEY }
});
const files = response.data;
if (!fs.existsSync(downloadDir)) {
fs.mkdirSync(downloadDir);
}
for (const file of files) {
const fileUrl = file.url;
const fileName = file.fileName;
if(fileName.startsWith(stationId)) {
console.log(`Downloading ${fileName}...`);
const filePath = path.join(downloadDir, fileName);
const fileResponse = await axios.get(fileUrl, {
headers: { 'key': API_KEY },
responseType: 'stream'
});
const writer = fs.createWriteStream(filePath);
fileResponse.data.pipe(writer);
}
}
console.log('All files downloaded.');
} catch (error) {
console.error('Error downloading RINEX files:', error.message);
}
}
downloadRinexFiles();
✅ What this script does
Queries the
/rinex/{year}/{dayOfYear}
endpoint to list available files.Iterates through the list and downloads each file using its
url.
Saves the files to a local
downloads
directory.
Last updated
Was this helpful?