GEOSTATIONARY SATELLITE GRIDDED DATA

Geostationary SatelliteGridded DataProduct Guide

This page is a product guide to the regular latitude–longitude grids generated as AMATERASS intermediate files by applying geolocation correction to Himawari-8/9 AHI Full Disk observations. The data are distributed by the Center for Environmental Remote Sensing (CEReS), Chiba University, as the CEReS Gridded Format (precisely geometrically corrected data on a regular latitude–longitude coordinate system), and this page is their primary information source, provided by the developer.

Himawari-8 AHI Band 03 Full Disk image at 03:00 UTC on 7 July 2019
2019-07-07 03:00 UTCAHI Band 03 · 0.64 µm · Reflectivity
120° × 120°85°E–155°W / 60°N–60°S
16 bandsAll AHI observation bands
0.005°–0.02°Native grid spacing
10 minFull Disk observation interval
01

PRODUCT AT A GLANCE

Product overview

All 16 AHI bands can be compared as Full Disk images on a common latitude–longitude grid, revealing wavelength-dependent information on clouds, the surface, water vapour, ozone, and other atmospheric features.

About this quicklook

The observation time is 03:00 UTC on 7 July 2019. B01–B06 show Reflectivity and B07–B16 show brightness temperature (TBB). The plotted ranges are selected for visualization and do not define the valid ranges of the data.

Overview of all 16 Himawari-8 AHI bands
02

CHANNEL & PRODUCT DIRECTORY

16 channels and product organization

The table below maps AHI band numbers to AMATERASS grid channel names, native resolutions, and suffixes used by the 4 km subproducts.

500 mEXT

EXT.01 · AHI B03

rad / rfc / rfy
1 kmVIS

VIS.01–03 · B01/B02/B04

rad / rfc / rfy
2 kmSIR

SIR.01–02 · B05/B06

rad / rfc / rfy
2 kmTIR

TIR.01–10 · B07–B16

rad / tbb
AMATERASS grid nameAHICentral wavelengthNative grid4 km suffixes
VIS.01vis.01B010.47 µm12,000 × 12,000 / 0.01°rad / rfc / rfy
VIS.02vis.02B020.51 µm12,000 × 12,000 / 0.01°rad / rfc / rfy
EXT.01ext.01B030.64 µm24,000 × 24,000 / 0.005°rad / rfc / rfy
VIS.03vis.03B040.86 µm12,000 × 12,000 / 0.01°rad / rfc / rfy
SIR.01sir.01B051.6 µm6,000 × 6,000 / 0.02°rad / rfc / rfy
SIR.02sir.02B062.3 µm6,000 × 6,000 / 0.02°rad / rfc / rfy
TIR.05tir.05B073.9 µm6,000 × 6,000 / 0.02°rad / tbb
TIR.06tir.06B086.2 µm6,000 × 6,000 / 0.02°rad / tbb
TIR.07tir.07B096.9 µm6,000 × 6,000 / 0.02°rad / tbb
TIR.08tir.08B107.3 µm6,000 × 6,000 / 0.02°rad / tbb
TIR.09tir.09B118.6 µm6,000 × 6,000 / 0.02°rad / tbb
TIR.10tir.10B129.6 µm6,000 × 6,000 / 0.02°rad / tbb
TIR.01tir.01B1310.4 µm6,000 × 6,000 / 0.02°rad / tbb
TIR.02tir.02B1411.2 µm6,000 × 6,000 / 0.02°rad / tbb
TIR.03tir.03B1512.4 µm6,000 × 6,000 / 0.02°rad / tbb
TIR.04tir.04B1613.3 µm6,000 × 6,000 / 0.02°rad / tbb

Channel numbers within each group are separate from AHI band numbers. For example, EXT.01 corresponds to AHI B03, while TIR.01 corresponds to AHI B13.

PRODUCT FORMATSelect a product format
03

NATIVE DN GRID, COVERAGE & QUICKLOOK

DN grids by native resolution

GEOLOCATION CORRECTION · CORE DIFFERENTIATOR

From satellite-projection pixels to
precisely geolocated observations

Himawari-8/9 Full Disk observations are scanned images whose pixels are arranged in the satellite projection. Individual pixels are not directly assigned to a regular latitude–longitude grid, and coordinates derived only from orbit, attitude, and scan geometry retain observation-dependent geolocation errors. This product estimates and corrects those errors from the imagery before mapping the observations to regular latitude–longitude grids.

01 · OBSERVATIONFull Disk scan image

Pixels are recorded by line and column in the satellite projection, not directly by latitude and longitude.

02 · REGISTRATIONEstimate each observation's error

Visible imagery is matched against terrain-derived landmark references to determine line and column displacement.

03 · GRID PRODUCTGeolocation-corrected lat–lon grid

Corrected pixels are mapped to common coordinates, producing DN grids with stable correspondence to the surface.

Overview of the AMATERASS geolocation-correction method and geostationary satellite grid generation
Geolocation Correction method — correction of observation geolocation using phase-only correlation and landmark information
METHOD

Phase-only correlation (POC)Two-dimensional fast Fourier transforms estimate image displacement rapidly without an iterative search.

REFERENCE

References derived from SRTM 1-arcsecond dataVisible-channel observations are matched against landmark reference images constructed from terrain data.

SCALE

Many control points at high cadenceThe Himawari-8 demonstration processed 22,709 points for each 10-minute Full Disk observation and 5,826 points for each 2.5-minute regional observation.

OUTPUT

Native-resolution DN gridsCorrected observations are written to regular latitude–longitude grids at 0.005°, 0.01°, and 0.02° spacing.

IMPLEMENTATION DESCRIBED IN TAKENAKA ET AL. (2020)

Inside the published Geolocation Correction method

This is not merely a coordinate transformation. It estimates residual geolocation error for each observation by registering the observed image against a geographic reference image.

DATA LEVELFrom Level-1A-equivalent to Level-1B-equivalent

Input disk pixels are not directly linked to latitude and longitude. Correction and gridding produce foundational data with geographic coordinates registered to the observations.

REFERENCE IMAGECoastlines built from SRTM 1-arcsecond data

Elevation is combined with water and ocean masks to construct landmark reference imagery in the normalized geostationary projection.

IMAGE MATCHINGPOC extracts displacement in one calculation

Phase-only correlation needs no iterative search; a clear peak in the correlation surface yields line and column displacement. Accuracy was maintained even in the presence of cloud disturbance.

QUASI-REAL-TIMEQuasi-real-time throughput for high-cadence observations

The 22,709-point Full Disk calculation ran in approximately 10 seconds using 88 threads, demonstrating performance suitable for 10- and 2.5-minute quasi-real-time analysis.

OFFSET FIELDCorrections retained as coff and loff

Column and line offsets are estimated for each observation. Their statistics also revealed characteristic time-varying geolocation errors in the standard data.

APPLICATIONApplied to 16-band grids and downstream analysis

The corrections support gridding of all 16 channels and provide a basis for physical retrievals, ground validation, and parallax correction. The method has also been applied to NASA GeoNEX.

GROUND VALIDATIONAccurate ground-site correspondence

Validation of satellite estimates such as surface solar radiation requires the selected pixel to correspond correctly to the ground instrument.

TIME SERIESConsistent geolocation for time-series analysis

Suppressing nonphysical spatial variability caused by geolocation error stabilizes time-series analysis of clouds and heterogeneous surfaces.

ERROR SEPARATIONClearer attribution of analysis error

It prevents retrieval-algorithm, sensor-calibration, and geolocation errors from being conflated during physical-product evaluation.

PRODUCT SIGNIFICANCE

This product is not a mechanical reprojection of a Full Disk image onto a prescribed map. Observation-specific geolocation errors are estimated from the imagery itself and corrected before the data are gridded. The resulting geographic correspondence forms a foundation for quantitative atmospheric and land analysis, validation against ground observations, and parallax correction.

CORRECTION OUTPUTcoff / loff

The YYYYMMDDHHMN.ext.fld.coff.txt.bz2 and YYYYMMDDHHMN.ext.fld.loff.txt.bz2 files in the EXT collection record column- and line-direction corrections generated by Geolocation Correction. They are not required for ordinary DN use.

For each native resolution, the coverage and grid structure are followed by a representative quicklook and the corresponding data specification.

AMATERASS SUBPRODUCT

500 m grid

EXT
500 m grid coverage, dimensions, and data specification
HOW TO READ THE QUICKLOOKRepresentative 500 m grid quicklookEXT.01 · B03 · 2019-07-07 03:00 UTC
Representative quicklook of EXT.01 · B03

What the quicklook shows

VariableEXT.01 · B03

0.64 µm Reflectivity

Observation time
2019-07-07 03:00 UTC
Unit
%
Display range
0–80 %
Domain and grid
Full Disk · 24,000 × 24,000
Grid spacing
0.005°
Storage
Big-endian UInt16 · headerless
Included channels

EXT.01(AHI B03)

PNG/WebP files are quicklooks for visual inspection. Use the corresponding binary file for numerical analysis.

AMATERASS SUBPRODUCT

1 km grid

VIS
1 km grid coverage, dimensions, and data specification
HOW TO READ THE QUICKLOOKRepresentative 1 km grid quicklookVIS.03 · B04 · 2019-07-07 03:00 UTC
Representative quicklook of VIS.03 · B04

What the quicklook shows

VariableVIS.03 · B04

0.86 µm Reflectivity

Observation time
2019-07-07 03:00 UTC
Unit
%
Display range
0–85 %
Domain and grid
Full Disk · 12,000 × 12,000
Grid spacing
0.01°
Storage
Big-endian UInt16 · headerless
Included channels

VIS.01 / 02 / 03(AHI B01 / 02 / 04)

PNG/WebP files are quicklooks for visual inspection. Use the corresponding binary file for numerical analysis.

AMATERASS SUBPRODUCT

2 km grid

SIR / TIR
2 km grid coverage, dimensions, and data specification
HOW TO READ THE QUICKLOOKRepresentative 2 km grid quicklookTIR.01 · B13 · 2019-07-07 03:00 UTC
Representative quicklook of TIR.01 · B13

What the quicklook shows

VariableTIR.01 · B13

10.4 µm Brightness temperature

Observation time
2019-07-07 03:00 UTC
Unit
K
Display range
200–310 K
Domain and grid
Full Disk · 6,000 × 6,000
Grid spacing
0.02°
Storage
Big-endian UInt16 · headerless
Included channels

SIR.01–02 / TIR.01–10(AHI B05–B16)

PNG/WebP files are quicklooks for visual inspection. Use the corresponding binary file for numerical analysis.

Common geographic coordinates

The domain extends from 85°E to 155°W and from 60°N to 60°S. Pixels are placed on regular latitude–longitude grids, with coastlines matched to each resolution.

04

NATIVE DN FILENAME ANATOMY

Reading a DN filename

GENERAL SYNTAXYYYYMMDDHHMN.{ext|vis|sir|tir}.NN.fld.geoss.bz2

Braces denote alternatives and NN is the two-digit channel number within a group. Braces and vertical bars do not appear in actual filenames.

201907070300.ext.01.fld.geoss.bz2
201907070300Observation time (UTC)

YYYY MM DD HH MN; the example is 2019-07-07 03:00 UTC

extChannel group

ext 500 m; vis 1 km; sir/tir 2 km

01Channel within group

Fixed at two digits; separate from the AHI band number

fld.geoss.bz2Domain, format, compression

Corrected Full Disk grid; bzip2-compressed UInt16

GROUP + CHANNELBoth elements identify the observation band

ext.01 = B03, vis.03 = B04, and tir.01 = B13. The number 01 alone does not identify an AHI band.

FIXED PRODUCT TOKENfld.geoss

fld denotes the Full Disk domain used in this guide. geoss is the fixed token used by this DN product series.

COMPRESSION.bz2 is the outer compression layer

Decompression leaves a headerless Big-endian UInt16 file ending in .fld.geoss. There is no .bin suffix.

EXAMPLES201907070300.ext.01.fld.geoss.bz2201907070300.vis.03.fld.geoss.bz2201907070300.tir.01.fld.geoss.bz2

Valid channel identifiers are ext.01, vis.01–03, sir.01–02, and tir.01–10. See the 16-channel table above for the complete mapping to AHI bands.

05

NATIVE DN STORAGE ORDER & MISSING VALUE

DN storage order and missing value

Row-major DN-grid storage from west to east and north to south
First pixelNorthwest cornerEach row runs west to east; rows advance north to south
Indexrow × NX + columnHeaderless, row-major storage
Missing DN65535Pixels left unfilled after geometric correction

Analysis note: 65535 is not a valid observation DN. Exclude it as missing before computing statistics or converting to physical quantities.

06

NATIVE DN READER SAMPLES

DN grid reader samples

Languages suited to sustained processing of large files are listed first. Decompress each file with bzip2 -dk FILE.bz2 or an equivalent command before running a sample.

1. JavaAvailable
2. CAvailable
3. FortranAvailable
4. PythonAvailable
Java: native DN gridExpand source code

This reader is written specifically for the native DN grid. It reads a headerless, row-major, big-endian binary file and verifies the value count and file size.

Download source
import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.EOFException;
import java.nio.file.Files;
import java.nio.file.Path;

public class ReadAmaterassDn {
    private record Grid(int nx, int ny) {}

    private static Grid gridFromName(String name) {
        String lower = name.toLowerCase();
        if (lower.contains(".ext.")) return new Grid(24000, 24000);
        if (lower.contains(".vis.")) return new Grid(12000, 12000);
        if (lower.contains(".sir.") || lower.contains(".tir.")) return new Grid(6000, 6000);
        throw new IllegalArgumentException("filename must contain .ext., .vis., .sir., or .tir.");
    }

    public static void main(String[] args) throws Exception {
        if (args.length != 1) throw new IllegalArgumentException("usage: java ReadAmaterassDn FILE");
        Path path = Path.of(args[0]);
        Grid grid = gridFromName(path.getFileName().toString());
        long count = (long) grid.nx * grid.ny;
        long expectedBytes = count * 2L;
        if (Files.size(path) != expectedBytes)
            throw new IllegalArgumentException("unexpected file size: " + Files.size(path) + " bytes");

        int first = -1, minimum = 65535, maximum = 0;
        long missing = 0, valid = 0;
        try (DataInputStream in = new DataInputStream(new BufferedInputStream(Files.newInputStream(path)))) {
            for (long i = 0; i < count; i++) {
                int value;
                try { value = in.readUnsignedShort(); }
                catch (EOFException e) { throw new EOFException("unexpected end of file at value " + i); }
                if (i == 0) first = value;
                if (value == 65535) { missing++; continue; }
                valid++;
                minimum = Math.min(minimum, value);
                maximum = Math.max(maximum, value);
            }
            if (in.read() != -1) throw new IllegalArgumentException("file is larger than expected");
        }
        System.out.printf("grid  = %d x %d%n", grid.nx, grid.ny);
        System.out.printf("first = %d DN%nmissing = %d pixels (DN 65535)%n", first, missing);
        if (valid > 0) System.out.printf("valid min = %d DN%nvalid max = %d DN%n", minimum, maximum);
    }
}
javac ReadAmaterassDn.java
java ReadAmaterassDn 201907070300.vis.02.fld.geoss
C: native DN gridExpand source code

This reader is written specifically for the native DN grid. It reads a headerless, row-major, big-endian binary file and verifies the value count and file size.

Download source
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>

static int grid_size(const char *name) {
    if (strstr(name, ".ext.")) return 24000;
    if (strstr(name, ".vis.")) return 12000;
    if (strstr(name, ".sir.") || strstr(name, ".tir.")) return 6000;
    fprintf(stderr, "filename must contain .ext., .vis., .sir., or .tir.\n");
    exit(EXIT_FAILURE);
}

int main(int argc, char **argv) {
    if (argc != 2) { fprintf(stderr, "usage: %s FILE\n", argv[0]); return EXIT_FAILURE; }
    int n = grid_size(argv[1]);
    uint64_t count = (uint64_t)n * (uint64_t)n, expected = count * 2u;
    struct stat info;
    if (stat(argv[1], &info) != 0) { perror(argv[1]); return EXIT_FAILURE; }
    if ((uint64_t)info.st_size != expected) {
        fprintf(stderr, "unexpected file size: %lld bytes\n", (long long)info.st_size);
        return EXIT_FAILURE;
    }

    FILE *fp = fopen(argv[1], "rb");
    if (!fp) { perror(argv[1]); return EXIT_FAILURE; }
    uint16_t first = 0, minimum = UINT16_MAX, maximum = 0;
    uint64_t missing = 0, valid = 0;
    for (uint64_t i = 0; i < count; i++) {
        uint8_t b[2];
        if (fread(b, 1, 2, fp) != 2) { fprintf(stderr, "unexpected end of file\n"); return EXIT_FAILURE; }
        uint16_t value = (uint16_t)(((uint16_t)b[0] << 8) | b[1]);
        if (i == 0) first = value;
        if (value == UINT16_MAX) { missing++; continue; }
        valid++;
        if (value < minimum) minimum = value;
        if (value > maximum) maximum = value;
    }
    fclose(fp);
    printf("grid  = %d x %d\nfirst = %u DN\nmissing = %llu pixels (DN 65535)\n",
           n, n, first, (unsigned long long)missing);
    if (valid > 0) printf("valid min = %u DN\nvalid max = %u DN\n", minimum, maximum);
    return EXIT_SUCCESS;
}
cc -O3 -std=c11 read_amaterass_dn.c -o read_dn
./read_dn 201907070300.vis.02.fld.geoss
Fortran: native DN gridExpand source code

This reader is written specifically for the native DN grid. It reads a headerless, row-major, big-endian binary file and verifies the value count and file size.

Download source
program read_amaterass_dn
  use iso_fortran_env, only: int16, int32, int64
  implicit none
  character(len=1024) :: path
  integer :: nx, ny, unit, row, column, stat
  integer(int64) :: bytes, expected, missing, valid
  integer(int16), allocatable :: raw(:)
  integer(int32) :: value, first, minimum, maximum

  if (command_argument_count() /= 1) error stop 'usage: read_dn FILE'
  call get_command_argument(1, path)
  if (index(path, '.ext.') > 0) then
    nx=24000
  else if (index(path, '.vis.') > 0) then
    nx=12000
  else if (index(path, '.sir.') > 0 .or. index(path, '.tir.') > 0) then
    nx=6000
  else
    error stop 'filename must contain .ext., .vis., .sir., or .tir.'
  end if
  ny=nx
  inquire(file=trim(path), size=bytes)
  expected=int(nx,int64)*int(ny,int64)*2_int64
  if (bytes /= expected) error stop 'unexpected file size'

  allocate(raw(nx))
  open(newunit=unit,file=trim(path),access='stream',form='unformatted', &
       status='old',action='read',convert='big_endian')
  minimum=65535; maximum=0; first=-1; missing=0; valid=0
  do row=1,ny
    read(unit,iostat=stat) raw
    if (stat /= 0) error stop 'unexpected end of file'
    do column=1,nx
      value=iand(int(raw(column),int32),int(z'FFFF',int32))
      if (row == 1 .and. column == 1) first=value
      if (value == 65535) then
        missing=missing+1
        cycle
      end if
      valid=valid+1
      minimum=min(minimum,value); maximum=max(maximum,value)
    end do
  end do
  close(unit)
  print '(A,I0,A,I0)', 'grid  = ',nx,' x ',ny
  print '(A,I0,A)', 'first = ',first,' DN'
  print '(A,I0,A)', 'missing = ',missing,' pixels (DN 65535)'
  if (valid > 0) then
    print '(A,I0,A)', 'valid min = ',minimum,' DN'
    print '(A,I0,A)', 'valid max = ',maximum,' DN'
  end if
end program read_amaterass_dn
gfortran -O3 read_amaterass_dn.f90 -o read_dn
./read_dn 201907070300.vis.02.fld.geoss
Python: native DN gridExpand source code

This reader is written specifically for the native DN grid. It reads a headerless, row-major, big-endian binary file and verifies the value count and file size.

Download source
from pathlib import Path
import sys
import numpy as np

def grid_size(name: str) -> int:
    name = name.lower()
    if ".ext." in name:
        return 24000
    if ".vis." in name:
        return 12000
    if ".sir." in name or ".tir." in name:
        return 6000
    raise ValueError("filename must contain .ext., .vis., .sir., or .tir.")

def main() -> None:
    if len(sys.argv) != 2:
        raise SystemExit(f"usage: {Path(sys.argv[0]).name} FILE")
    path = Path(sys.argv[1])
    n = grid_size(path.name)
    values = np.fromfile(path, dtype=">u2")
    if values.size != n * n:
        raise ValueError(f"unexpected value count: {values.size}")
    grid = values.reshape(n, n)
    valid = grid != 65535
    valid_values = grid[valid]
    print(f"grid  = {n} x {n}")
    print(f"first = {int(grid[0, 0])} DN")
    print(f"missing = {int((~valid).sum())} pixels (DN 65535)")
    if valid_values.size:
        print(f"valid min = {int(valid_values.min())} DN")
        print(f"valid max = {int(valid_values.max())} DN")

if __name__ == "__main__":
    main()
python3 read_amaterass_dn.py 201907070300.vis.02.fld.geoss

Input handled by these samples: The DN readers infer 24,000 × 24,000, 12,000 × 12,000, or 6,000 × 6,000 from ext / vis / sir / tir in the filename and read unsigned 16-bit integers.

DATA AVAILABILITY

Published in the CEReS Gridded Format

These products are published by the Center for Environmental Remote Sensing (CEReS), Chiba University, in the CEReS Gridded Format as precisely geometrically corrected data on a regular latitude–longitude coordinate system. They are essentially intermediate files produced by AMATERASS.

Open the CEReS data page