Skip to main content

Fractional Cover (FC)

Build Status Coverage Status

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:

  1. Creating the task list

  2. Check for unexpected existing files - these were most likely created during an run that did not successfully finish.

  3. 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:
  1. Tasks (loadables (nbart,ps,dsm) + output targets) shall be yielded for dispatch to workers.

  2. Load data

  3. Run FC algorithm

  4. Attach metadata

  5. Write output files and

  6. 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)

Table of built distributions (wheels) for fractional-cover 1.3.14
File
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 log

Release 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 log

Release 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 log

Release 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 log

Release 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

Release history Release notifications | RSS feed

This release

1.3.14 This release

5 release files

1.3.13

4 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page