Fractional Cover (FC)
Fractional Cover is a remote sensing algorithm which measures the photosynthetic, non-photosynthetic and bare earth components of a Landsat image.
This repository implements Fractional Cover as used by Digital Earth Australia for the production of the Fractional Cover Data Product. The implementation is Python, with the core algorithm in Fortran.
Data production is either by a command line application that runs on the NCI, or a Virtual Product class run by Datacube Alchemist on AWS.
Installation
The easiest way to install Fractional Cover is:
pip install --extra-index-url=https://packages.dea.ga.gov.au/ fc
This package includes the compiled Fortran extensions to run about 15 times faster than the Python+scipy version you get by default without a Fortran compiler.
Setup on VDI
The first time you try to use gadi PBS commands from VDI, you will need to run:
$ remote-hpc-cmd init
See http://vdi.nci.org.au/help#heading=h.u1kl1j7vdt16 for more details.
You will also need to setup datacube to work from VDI and gadi.
$ ssh gadi "cat .pgpass" >> ~/.pgpass $ chmod 0600 ~/.pgpass
See http://geoscienceaustralia.github.io/digitalearthau/connect/nci_basics.html for full details.
Running
The Fractional Cover application works in 2 parts:
Creating the task list
Check for unexpected existing files - these were most likely created during an run that did not successfully finish.
Submit the job to gadi.
To run fractional cover:
$ module use /g/data/v10/public/modules/modulefiles/ $ module load dea
This will list the available app configs:
$ datacube-fc list ls5_fc_albers.yaml ls7_fc_albers.yaml ls8_fc_albers.yaml
To submit the job to gadi, the datacube-fc app has a the datacube-fc submit command: This command kick off two stage PBS job
- Stage 1 (Generate task file):
The task-app machinery loads a config file, from a path specified on the command line, into a dict.
If dry is enabled, a dummy DatasetType is created for tasks generation without indexing the product in the database. If dry run is disabled, generate tasks into file and queue PBS job to process them.
- Stage 2 (Run):
- During normal run, following are performed:
Tasks (loadables (nbart,ps,dsm) + output targets) shall be yielded for dispatch to workers.
Load data
Run FC algorithm
Attach metadata
Write output files and
Finally index the newly created FC output files
If dry run is enabled, application only prepares a list of output files to be created and does not record anything in the database.
Tracking progress
$ qstat -u $USER $ qcat 7517348.gadi-pbs | head $ qcat 7517348.gadi-pbs | tail $ qps 7517348.gadi-pbs
File locations
The config file (eg. ls5_fc_albers.yaml) specifies the app settings, and is found in the module.
You will need to check the folder of the latest dea module:
ls /g/data/v10/public/modules/dea/<YYYYMMDD>/lib/python3.6/site-packages/fc/config
The config file lists the output location and file_path_template``, as shown in this snippet:
source_type: ls5_nbar_albers
output_type: ls5_fc_albers
description: Landsat 5 Fractional Cover 25 metre, 100km tile, Australian Albers Equal Area projection (EPSG:3577)
product_type: fractional_cover
location: '/g/data/fk4/datacube/002/'
file_path_template: 'LS5_TM_FC/{tile_index[0]}_{tile_index[1]}/LS5_TM_FC_3577_{tile_index[0]}_{tile_index[1]}_{start_time}_v{version}.nc'
So here the output files are saved to /g/data/fk4/datacube/002/FC/LS5_TM_FC/<tile_index>/*.nc
File naming
Specify a template string used to name the output files. Uses the python format() string syntax, with the following placeholders available:
Placeholder |
Description |
|---|---|
tile_index[0] |
X Tile Index |
tile_index[1] |
Y Tile Index |
region code |
The region code of the input dataset |
epoch_start |
Start date of the epoch, format using strftime syntax |
epoch_end |
End date of the epoch, format using strftime syntax |
version |
Task timestamp |
start_time |
Start time in %Y%m%d%H%M%S%f format |
end_time |
End time in %Y%m%d%H%M%S%f format |
For example:
file_path_template: '{y}_{x}/LS_PQ_COUNT_3577_{y}_{x}_{epoch_start:%Y-%m-%d}_{epoch_end:%Y-%m-%d}.nc'
Will output filenames similar to:
10_15/LS_PQ_COUNT_3577_10_15_2010-01-01_2011-01-01.nc
License
This repository is licensed under the Apache License 2.0. See the LICENSE file in this repository for details.
Contacts
Geoscience Australia developers:
Joshua Sixsmith joshua.sixsmith@ga.gov.au
Jeremy Hooke jeremy.hooke@ga.gov.au
Damien Ayers damien.ayers@ga.gov.au
Duncan Gray duncan.gray@ga.gov.au
Algorithm developer:
Peter Scarth peter.scarth@qld.gov.au
Metadata
Release files for fractional-cover 1.3.14
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| fractional_cover-1.3.14-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.14 | CPython 3.14 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| fractional_cover-1.3.14-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.13 | CPython 3.13 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| fractional_cover-1.3.14-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
| fractional_cover-1.3.14-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
| fractional_cover-1.3.14-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 | Details |
Total release size: 5.4 MB
Release files / fractional_cover-1.3.14-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | fractional_cover-1.3.14-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
476016bb120ed92afb25a82bf079d08da703ddbc304dda5a5d9bf5a5d36481b7
|
|
BLAKE2b-256 checksum How to use checksums |
8ca5bfcfc520f4168d62491b751b390415a33503dd3fa3b40b9313127e4d38c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / fractional_cover-1.3.14-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | fractional_cover-1.3.14-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
9c4dfe7c0c859004a5645cc971d865f72c021aa85e0f871aea0296c931e1b11e
|
|
BLAKE2b-256 checksum How to use checksums |
c0b637e8f27fc90a82090d804404f374f3cbc536434693449bd4dfb3ffc07d50
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / fractional_cover-1.3.14-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | fractional_cover-1.3.14-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
b6f289318a084ab419e6d279613de0590fc76822ca5942f2eb373aadd61a91b4
|
|
BLAKE2b-256 checksum How to use checksums |
2f696850780bd9cb3ef5fb01d56f72ba006c04c1fb17737c639f844ae6b3e2e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / fractional_cover-1.3.14-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | fractional_cover-1.3.14-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
2adde1acf0b6a63c2e30535644913c5efeed6f9f59e0b6150a34b3a4ce1f10c5
|
|
BLAKE2b-256 checksum How to use checksums |
d02bb953a929b9655fca602ae95cdbdb3364eff2d666d28120dc0040ecfede0b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / fractional_cover-1.3.14-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | fractional_cover-1.3.14-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
1c122c78c5072d6301e0da27d8e1eefc6029a5760835cf454e3c57f3ac0cb5d1
|
|
BLAKE2b-256 checksum How to use checksums |
ff2e0c489fdfcb70773b4dc73e26938b6b9e46930d37f142255a0dc2304197d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency log