Git Product home page Git Product logo

nbn-upgrade-map's Introduction

NBN FTTP Upgrade Map

Progress Progress Updated

The Australian National Broadband Network (NBN) announced an on-demand upgrade program for select premises serviced via Fibre to the Node (FTTN) and Fibre to the Curb (FTTC) to Fibre to the Premises (FTTP) in October 2020.

NBN has progressively announced towns and suburbs where FTTN users will be eligible for a FTTP upgrade (FTTC areas aren't disclosed by NBN).

The details regarding actual availability of the program are limited with not all households in announced suburbs eligible for upgrades.

To address these concerns this project runs automated checks against the announced suburbs to generate interactive maps showing which premises are ready to upgrade. You can see the current version of this data at https://lukeprior.github.io/nbn-upgrade-map/

Website Screenshot

Tech Explanation

To know what premises reside within a given town/suburb the Geocoded National Address File of Australia (GNAF) is used which contains 15.4 million Australian addresses. This dataset is provided over multiple files and requires significant processing before it can easily be used with a databse solution such as PostgreSQL, Hugh Saalmans has created gnaf-loader a Docker container which contains the GNAF dataset and administrative boundaries in PostgreSQL which is used. He has also created a slide-deck explaining the dataset which is available to view here.

To check each address the NBN places APIs are used both to determine the LocID for a given address and then the premise details. These APIs are the same ones used on the main NBN Fast Fibre website. To speed up the process up to 20 simultaneous requests are made to these APIs by using the Python ThreadPool.

The results of these checks are stored in GeoJSON files for each suburb containing the coordinates, street address, current NBN technology, NBN LocID, and NBN Fibre upgrade eligibility. These files can be found in the results folder and can be viewed from within GitHub.

GitHub Screenshot

To improve the user experience a simple site is available for viewing this data, the website uses Leaflet to display the selected data with colour coded markers and info popups containing additional information for each premise.

The updating of data is performed with a GitHub Actions workflow that accepts a target suburb and will automatically fetch and publish all the data.

If you would like to see an additional suburb added please open an issue.

Running locally

To run the code on your local machine you will first need to setup the PostgreSQL database with the GNAF dataset. We have developed a "cut down" version of the minus34/gnaf-loader image that includes just the data this program needs, and is ~3GB instead of the 32GB original. The simplest way to do this is by running the Docker container with the following commands.

docker run --publish=5433:5432 lukeprior/nbn-upgrade-map-db:latest

The database can then be accessed at localhost on port 5433 with username: postgres and password password.

The repository can be cloned and from the main directory main.py can be run using python code/main.py SUBURB STATE.

The available SUBURB/STATE combinations can be found in results/all_suburbs.json while results/suburbs.json contains the suburbs announced by NBN to be upgraded to FTTP.

The results will be saved in the corresponding state folder in results.

To update the results/results.json file the results.py script can be run using python code/results.py

To view the results you will need a geojson viewer such as geojson.io or modify the index.html file to load local files instead of those hosted on this repo.

nbn-upgrade-map's People

Contributors

github-actions[bot] avatar lukeprior avatar lyricnz avatar dependabot[bot] avatar justinclift avatar majibow avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.