Created
July 10, 2018 07:03
-
-
Save rutj3/9c7d037b133e76a21c0765c292b9e34f to your computer and use it in GitHub Desktop.
SatPy Resample angles
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"from satpy import Scene\n", | |
"from satpy import find_files_and_readers\n", | |
"from pyresample.geometry import AreaDefinition\n", | |
"import numpy as np\n", | |
"\n", | |
"from datetime import datetime, timedelta\n", | |
"import os" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# from satpy.utils import debug_on; debug_on()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Settings" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"base_dir = r'D:/Data/Sentinel/Sentinel3/OLCI'\n", | |
" \n", | |
"start_time = datetime(2018, 7, 2, 0, 0)\n", | |
"end_time = start_time + timedelta(days=1)\n", | |
"\n", | |
"area = AreaDefinition('NL', 'NL', 'NL', dict(init='EPSG:28992'), 2000, 2000, [-100000, 200000, 500000, 800000])" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Search files" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"48" | |
] | |
}, | |
"execution_count": 4, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"files = find_files_and_readers(sensor=\"olci\",\n", | |
" start_time=start_time,\n", | |
" end_time=end_time,\n", | |
" base_dir=base_dir,\n", | |
" reader='nc_olci_l1b')\n", | |
"\n", | |
"len(files['nc_olci_l1b'])" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Load bands" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"['Oa01', 'Oa02', 'Oa03', 'Oa04', 'Oa05', 'Oa06', 'Oa07', 'Oa08', 'Oa09', 'Oa10', 'Oa11', 'Oa12', 'Oa13', 'Oa14', 'Oa15', 'Oa16', 'Oa17', 'Oa18', 'Oa19', 'Oa20', 'Oa21', 'latitude', 'longitude', 'satellite_azimuth_angle', 'satellite_zenith_angle', 'solar_azimuth_angle', 'solar_zenith_angle']\n" | |
] | |
} | |
], | |
"source": [ | |
"bands = ['Oa%02i' % i for i in range(1,22)]\n", | |
"meta_bands = ['latitude', 'longitude', 'satellite_azimuth_angle', 'satellite_zenith_angle', 'solar_azimuth_angle', 'solar_zenith_angle']\n", | |
"\n", | |
"print(bands + meta_bands)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"scn = Scene(filenames=files, reader='nc_olci_l1b')\n", | |
"\n", | |
"# only load the sensor bands, works fine\n", | |
"scn.load(bands, calibration='radiance')\n", | |
"scn.load(meta_bands)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"['Oa01', 'Oa02', 'Oa03', 'Oa04', 'Oa05', 'Oa06', 'Oa07', 'Oa08', 'Oa09', 'Oa10', 'Oa11', 'Oa12', 'Oa13', 'Oa14', 'Oa15', 'Oa16', 'Oa17', 'Oa18', 'Oa19', 'Oa20', 'Oa21', 'latitude', 'longitude', 'satellite_azimuth_angle', 'satellite_zenith_angle', 'solar_azimuth_angle', 'solar_zenith_angle']\n" | |
] | |
} | |
], | |
"source": [ | |
"print(scn.available_dataset_names())" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[DatasetID(name='Oa01', wavelength=(0.3925, 0.4, 0.4075), resolution=300, polarization=None, calibration='radiance', level=None, modifiers=()),\n", | |
" DatasetID(name='Oa02', wavelength=(0.4075, 0.4125, 0.4175), resolution=300, polarization=None, calibration='radiance', level=None, modifiers=()),\n", | |
" DatasetID(name='Oa03', wavelength=(0.4375, 0.4425, 0.4475), resolution=300, polarization=None, calibration='radiance', level=None, modifiers=()),\n", | |
" DatasetID(name='Oa04', wavelength=(0.485, 0.49, 0.495), resolution=300, polarization=None, calibration='radiance', level=None, modifiers=()),\n", | |
" DatasetID(name='Oa05', wavelength=(0.505, 0.51, 0.515), resolution=300, polarization=None, calibration='radiance', level=None, modifiers=()),\n", | |
" DatasetID(name='Oa06', wavelength=(0.555, 0.56, 0.565), resolution=300, polarization=None, calibration='radiance', level=None, modifiers=()),\n", | |
" DatasetID(name='Oa07', wavelength=(0.615, 0.62, 0.625), resolution=300, polarization=None, calibration='radiance', level=None, modifiers=()),\n", | |
" DatasetID(name='Oa08', wavelength=(0.66, 0.665, 0.67), resolution=300, polarization=None, calibration='radiance', level=None, modifiers=()),\n", | |
" DatasetID(name='Oa09', wavelength=(0.67, 0.67375, 0.6775), resolution=300, polarization=None, calibration='radiance', level=None, modifiers=()),\n", | |
" DatasetID(name='Oa10', wavelength=(0.6775, 0.68125, 0.685), resolution=300, polarization=None, calibration='radiance', level=None, modifiers=()),\n", | |
" DatasetID(name='Oa11', wavelength=(0.70375, 0.70875, 0.71375), resolution=300, polarization=None, calibration='radiance', level=None, modifiers=()),\n", | |
" DatasetID(name='Oa12', wavelength=(0.75, 0.75375, 0.7575), resolution=300, polarization=None, calibration='radiance', level=None, modifiers=()),\n", | |
" DatasetID(name='Oa13', wavelength=(0.76, 0.76125, 0.7625), resolution=300, polarization=None, calibration='radiance', level=None, modifiers=()),\n", | |
" DatasetID(name='Oa14', wavelength=(0.760625, 0.764375, 0.768125), resolution=300, polarization=None, calibration='radiance', level=None, modifiers=()),\n", | |
" DatasetID(name='Oa15', wavelength=(0.76625, 0.7675, 0.76875), resolution=300, polarization=None, calibration='radiance', level=None, modifiers=()),\n", | |
" DatasetID(name='Oa16', wavelength=(0.77125, 0.77875, 0.78625), resolution=300, polarization=None, calibration='radiance', level=None, modifiers=()),\n", | |
" DatasetID(name='Oa17', wavelength=(0.855, 0.865, 0.875), resolution=300, polarization=None, calibration='radiance', level=None, modifiers=()),\n", | |
" DatasetID(name='Oa18', wavelength=(0.88, 0.885, 0.89), resolution=300, polarization=None, calibration='radiance', level=None, modifiers=()),\n", | |
" DatasetID(name='Oa19', wavelength=(0.895, 0.9, 0.905), resolution=300, polarization=None, calibration='radiance', level=None, modifiers=()),\n", | |
" DatasetID(name='Oa20', wavelength=(0.93, 0.94, 0.95), resolution=300, polarization=None, calibration='radiance', level=None, modifiers=()),\n", | |
" DatasetID(name='Oa21', wavelength=(1.0, 1.02, 1.04), resolution=300, polarization=None, calibration='radiance', level=None, modifiers=()),\n", | |
" DatasetID(name='latitude', wavelength=None, resolution=300, polarization=None, calibration=None, level=None, modifiers=()),\n", | |
" DatasetID(name='longitude', wavelength=None, resolution=300, polarization=None, calibration=None, level=None, modifiers=()),\n", | |
" DatasetID(name='satellite_azimuth_angle', wavelength=None, resolution=300, polarization=None, calibration=None, level=None, modifiers=()),\n", | |
" DatasetID(name='satellite_zenith_angle', wavelength=None, resolution=300, polarization=None, calibration=None, level=None, modifiers=()),\n", | |
" DatasetID(name='solar_azimuth_angle', wavelength=None, resolution=300, polarization=None, calibration=None, level=None, modifiers=()),\n", | |
" DatasetID(name='solar_zenith_angle', wavelength=None, resolution=300, polarization=None, calibration=None, level=None, modifiers=())]" | |
] | |
}, | |
"execution_count": 8, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"scn.datasets.keys()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Resample" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"scn_warped = scn.resample(destination=area, resampler='nearest') # no bilinear avail" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Write geotiff" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"C:\\Miniconda3\\envs\\satpytest\\lib\\site-packages\\rasterio\\__init__.py:193: UserWarning: Dataset has no geotransform set. Default transform will be applied (Affine.identity())\n", | |
" s.start()\n", | |
"Rasterio 1.0+ required for setting colorinterp\n", | |
"Rasterio 1.0+ required for setting colorinterp\n", | |
"Rasterio 1.0+ required for setting colorinterp\n", | |
"Rasterio 1.0+ required for setting colorinterp\n" | |
] | |
} | |
], | |
"source": [ | |
"for band in bands + meta_bands:\n", | |
"\n", | |
" filename = os.path.join(r'D:\\Algemeen\\Sentinel3_wv_aero\\NL_20180702', '{}_{}.tif'.format(band, start_time.strftime(\"%Y%m%d\")))\n", | |
" \n", | |
" if os.path.exists(filename):\n", | |
" continue\n", | |
" \n", | |
" scn_warped.save_dataset(band, filename=filename, writer='GeoTIFF', dtype=np.float32, enhancement_config=False)\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.5.5" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment