davwheat / mobile-spectrum-data

Data related to mobile networking spectrum around the world, including ARFCNs, descriptions, and more.
https://mastdatabase.co.uk/
GNU Lesser General Public License v3.0
5 stars 3 forks source link
hacktoberfest

Mobile spectrum data

This repository contains data related to mobile networking spectrum around the world, including ARFCNs, descriptions, and more.

I use this data for my own open-source mobile networking website: https://mastdatabase.co.uk

This dataset is licensed under the GNU LGPLv3 license.

Supported countries

Countries with data in this package are included below. If yours is misisng, why not contribute?

Country
๐Ÿ‡ฆ๐Ÿ‡น Austria
๐Ÿ‡ง๐Ÿ‡ฌ Bulgaria
๐Ÿ‡ฉ๐Ÿ‡ช Germany
๐Ÿ‡ฉ๐Ÿ‡ฐ Denmark
๐Ÿ‡ช๐Ÿ‡ช Estonia
๐Ÿ‡ซ๐Ÿ‡ฎ Finland (and ร…land)
๐Ÿ‡ฌ๐Ÿ‡ง United Kingdom
๐Ÿ‡ญ๐Ÿ‡บ Hungary
๐Ÿ‡ฎ๐Ÿ‡ช Ireland
๐Ÿ‡ฎ๐Ÿ‡น Italy
๐Ÿ‡ฏ๐Ÿ‡ฒ Jamaica
๐Ÿ‡ฐ๐Ÿ‡ท South Korea
๐Ÿ‡ฑ๐Ÿ‡น Lithuania
๐Ÿ‡ฑ๐Ÿ‡ป Latvia
๐Ÿ‡ฒ๐Ÿ‡ฐ North Macedonia
๐Ÿ‡ต๐Ÿ‡น Portugal
๐Ÿ‡ท๐Ÿ‡ด Romania
๐Ÿ‡ท๐Ÿ‡ธ Serbia
๐Ÿ‡ท๐Ÿ‡บ Russia
๐Ÿ‡น๐Ÿ‡น Trinidad and Tobago
๐Ÿ‡บ๐Ÿ‡ฆ Ukraine

Package structure

This package includes typings declarations for all exported data. Your IDE should use these to detect and prevent syntax errors in your code.

Spectrum allocation and usage

A country's sepctrum data can be imported by its two-letter ISO country code.

For example, to import the UK's spectrum data, you would do:

import SpectrumDataGB from "mobile-spectrum-data/GB";

This imported data will be an array of Javascript objects with the keys names and spectrumData.

{
  names: ["B8", "n8"],
  spectrumData: [ /* ... */ ]
}

You can also import data for specific bands individually. This is allowed, and can be used to prevent loading more data than needed, but is considered internal and your imports could break between versions (but are very unlikely to).

Sometimes multiple bands are contained within one single file. A good example of this is Denmark, with Bands 32, 75 and 76 being in the same file and spectrum allocation list due to Bands 75 and 76 being extensions of Band 32.

import Band8GB from "mobile-spectrum-data/GB/8";
import Band32_75_76DK from "mobile-spectrum-data/DK/32_75_76";

LTE and NR band data

This package also contains a list of all LTE and NR bands, along with useful metadata about them.

This includes the human names for them, start and end frequencies, the offset used for DL and UL ARFCN calculation and more.

This can be imported from the BandInfo folder.

Please note that ARFCN offsets are not currently included for NR.

import { LTEBandData, NRBandData } from "mobile-spectrum-data/BandInfo";

// or...

import { LTEBandData } from "mobile-spectrum-data/BandInfo/LTEBandData";
import { NRBandData } from "mobile-spectrum-data/BandInfo/NRBandData";

Editing spectrum

Need help editing spectrum? Try my GUI spectrum editor.

Developer documentation

Testing changes

To test alongside mastdatabase.co.uk, you should:

  1. Clone both repos locally and check out the appropriate branch(es).
  2. Install dependencies in both repos (run yarn).
  3. In mobile-spectrum-data, run yarn pub. When asked for an OTP, hit Ctrl + C to cancel.
  4. In mobile-spectrum-data, delete the package.json and yarn.lock temporarily.
  5. In mastdatabase.co.uk, run yarn link path/to/mobile-spectrum-data/publish-tmp.
  6. Launch mastdatabase.co.uk locally with yarn develop.
  7. Test your changes!