{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# AVHRR GAC Reader Introduction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Satpy uses __[pygac](https://pygac.readthedocs.io)__ to read and calibrate AVHRR GAC (Global Area Coverage) and LAC (Local Area Coverage) data.\n", "\n", "Further Reading: https://www.avl.class.noaa.gov/release/data_available/avhrr/index.htm" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Supported Files\n", "\n", "AVHRR data in NOAA GAC format. Example filename: `NSS.GHRR.NP.D15361.S0121.E0315.B3547172.SV`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Quickstart with AVHRR GAC data from NOAA-14" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from datetime import datetime\n", "from satpy.scene import Scene\n", "\n", "scn = Scene(sensor=\"avhrr-2\",\n", " start_time=datetime(1995, 2, 24, 9, 40),\n", " end_time=datetime(1995, 2, 24, 9, 42),\n", " base_dir='/home/a001673/usr/src/cci_geolocation/data',\n", " reader=\"avhrr_l1b_gaclac\",\n", " reader_kwargs={'tle_dir': '/path/to/tle/',\n", " 'tle_name': 'TLE_%(satname)s.txt'})" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "composite = 'overview'\n", "scn.load([composite])\n", "scn.show(composite)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that you have to specify location and format of the so called Two-Line-Elements (TLE) via `reader_kwargs`. Some NOAA-16 TLEs are available in [pygac's github repository](https://github.com/pytroll/pygac/tree/main/gapfilled_tles). Historical TLEs can be obtained from https://www.celestrak.com/ and have the following format:\n", "\n", "```\n", "1 23455U 94089A 01122.93455091 .00000622 00000-0 36103-3 0 7210\n", "2 23455 99.1771 113.3063 0008405 277.6106 82.4106 14.12671703326608\n", "1 23455U 94089A 01326.97611660 .00000739 00000-0 42245-3 0 9806\n", "2 23455 99.1886 322.4670 0009980 66.2863 293.9354 14.12871991355419\n", "etc\n", "```\n", "\n", "For more keyword arguments checkout out the [reader documentation](https://satpy.readthedocs.io/en/latest/api/satpy.readers.html#module-satpy.readers.avhrr_l1b_gaclac)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Reading Individual Datasets" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Of course you can also readout the individual channels and ancillary datasets directly. Here is an example with NOAA-19 data:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import satpy\n", "\n", "# Channel set for KLM satellites. For POD satellites the channels are\n", "# ['1', '2', '3', '4', '5'].\n", "channels = ['1', '2', '3a', '3b', '4', '5']\n", "\n", "# Select some ancillary datasets (there are more datasets available, \n", "# see satpy/etc/readers/avhrr_l1b_gaclac.yaml)\n", "ancillary = ['solar_zenith_angle',\n", " 'sensor_zenith_angle',\n", " 'latitude',\n", " 'longitude'] \n", "\n", "scene = satpy.Scene(filenames=['NSS.GHRR.NP.D15361.S0121.E0315.B3547172.SV'], \n", " reader='avhrr_l1b_gaclac', \n", " reader_kwargs={'tle_dir': 'tle/',\n", " 'tle_name': 'TLE_%(satname)s.txt'})\n", "scene.load(channels + ancillary)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
<xarray.DataArray 'array-d416e9b022847a2d5f370401d47356d7' (y: 13760, x: 409)>\n", "dask.array<array, shape=(13760, 409), dtype=float64, chunksize=(13760, 409)>\n", "Coordinates:\n", " acq_time (y) datetime64[ns] 2015-12-27T01:21:08.285000 ... 2015-12-27T03:15:47.785000\n", "Dimensions without coordinates: y, x\n", "Attributes:\n", " orbital_parameters: {'tle': ('1 33591U 09005A 15360.91031674 .000001...\n", " platform_name: noaa19\n", " orbit_number: 35471\n", " file_type: gac_lac_l1b\n", " calibration: brightness_temperature\n", " wavelength: (10.3, 10.8, 11.3)\n", " name: 4\n", " standard_name: toa_brightness_temperature\n", " coordinates: ('longitude', 'latitude')\n", " polarization: None\n", " modifiers: ()\n", " units: K\n", " level: None\n", " midnight_scanline: None\n", " resolution: 1050\n", " sensor: avhrr-3\n", " missing_scanlines: [ 1 2 3 4 5 6 7 8 ...\n", " start_time: 2015-12-27 01:21:08.285000\n", " end_time: 2015-12-27 03:15:47.785000\n", " area: Shape: (13760, 409)\\nLons: <xarray.DataArray 'array...\n", " ancillary_variables: []" ], "text/plain": [ "