{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "## Sentinel-1 Offset Tracking for glacier velocity maps" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Objective" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Apply the offset tracking technique to derive the glacier velocity maps.\n", "\n", "The goal of this tutorial is to provide novice and experienced remote sensing users with a workflow using the Offset Tracking tools in generating glacier velocity maps with Sentinel-1 Level-1 Ground Range Detected (GRD) products.\n", "\n", "Offset Tracking is a technique that measures feature motion between two images using patch intensity cross-correlation optimization. It is widely used in glacier motion estimation." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Data" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "SENTINEL data products are made available systematically and free of charge to all data users including the general public, scientific and commercial users. Radar data will be delivered within an hour of reception for Near Real-Time (NRT) emergency response, within three hours for NRT priority areas and within 24 hours for systematically archived data.\n", "\n", "All data products are distributed in the SENTINEL Standard Archive Format for Europe (SAFE) format.\n", "\n", "Data products are available in single polarisation (VV or HH) for Wave mode and dual polarisation (VV+VH or HH+HV) and single polarisation (HH or VV) for SM, IW and EW modes." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Level-1 Ground Range Detected (GRD) products consist of focused SAR data that has been detected, multi-looked and projected to ground range using an Earth ellipsoid model. Phase information is lost. The resulting product has approximately square resolution pixels and square pixel spacing with reduced speckle at the cost of reduced geometric resolution.\n", "\n", "GRD products can be in one of three resolutions:\n", "\n", "* Full Resolution (FR)\n", "* High Resolution (HR)\n", "* Medium Resolution (MR).\n", "\n", "The resolution is dependent upon the amount of multi-looking performed. Level-1 GRD products are available in MR and HR for IW and EW modes, MR for WV mode and MR, HR and FR for SM mode." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Workflow" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", "\n", "\n", "\n", "\n", "%3\n", "\n", "\n", "A\n", "\n", "Read Slave\n", "\n", "\n", "B\n", "\n", "Apply-Orbit-File\n", "\n", "\n", "A->B\n", "\n", "\n", "\n", "\n", "E\n", "\n", "DEM-Assisted-Coregistration\n", "\n", "\n", "B->E\n", "\n", "\n", "\n", "\n", "C\n", "\n", "Read Master\n", "\n", "\n", "D\n", "\n", "Apply-Orbit-File\n", "\n", "\n", "C->D\n", "\n", "\n", "\n", "\n", "D->E\n", "\n", "\n", "\n", "\n", "F\n", "\n", "Offset-Tracking\n", "\n", "\n", "E->F\n", "\n", "\n", "\n", "\n", "G\n", "\n", "Terrain-Correction\n", "\n", "\n", "F->G\n", "\n", "\n", "\n", "\n", "H\n", "\n", "Subset\n", "\n", "\n", "G->H\n", "\n", "\n", "\n", "\n", "I\n", "\n", "Write\n", "\n", "\n", "H->I\n", "\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from graphviz import Digraph\n", "\n", "dot = Digraph()\n", "dot.node('A', 'Read Slave')\n", "dot.node('B', 'Apply-Orbit-File')\n", "dot.node('C', 'Read Master')\n", "dot.node('D', 'Apply-Orbit-File')\n", "dot.node('E', 'DEM-Assisted-Coregistration')\n", "dot.node('F', 'Offset-Tracking')\n", "dot.node('G', 'Terrain-Correction')\n", "dot.node('H', 'Subset')\n", "dot.node('I', 'Write')\n", "\n", "dot.edges(['AB', 'BE', 'CD', 'DE', 'EF', 'FG', 'GH', 'HI'])\n", "\n", "dot" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "glacier_center = dict([('id', 'glacier_center'),\n", " ('value', '-35.3,83.9'),\n", " ('title', 'Glacier center (lon, lat)'),\n", " ('abstract', 'Glacier center (lon, lat)')])" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "geo_extent = dict([('id', 'geo_extent'),\n", " ('value', '50000'),\n", " ('title', 'Extent around the glacier center in meters'),\n", " ('abstract', 'Extent around the glacier center in meters')])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### The Python modules required" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "from geopandas import GeoDataFrame\n", "import geopandas as gp\n", "from shapely.wkt import loads\n", "import cioppy\n", "import numpy as np\n", "from datetime import datetime\n", "import gdal\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import tempfile\n", "import lxml.etree as etree\n", "import subprocess\n", "import tempfile\n", "import time\n", "import psutil\n", "import os\n", "\n", "\n", "from snappy import jpy\n", "from snappy import ProductIO\n", "from snappy import GPF\n", "from snappy import HashMap\n", "from osgeo import ogr\n", "from osgeo import osr\n", "from shapely.geometry import Point\n", "from shapely.geometry import Polygon\n", "from shapely.geometry import box\n", "from shapely.wkt import loads\n", "from shapely import geometry\n", "import numpy as np\n", "import ipyleaflet\n", "from ipyleaflet import *\n", "\n", "from ipywidgets import HTML\n", "\n", "from datetime import datetime\n", "\n", "import cioppy\n", "\n", "import lxml.etree as etree\n", "\n", "import math\n", "import sys\n", "sys.path.append(os.getcwd())\n", "import ellip_snap_helpers\n", "\n", "%load_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Extend the area of interest around the glacier" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As done before, we extend the area of interest using the EPSG 3575:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "def convert_coords(source_epsg, target_epsg, geom):\n", "\n", " source = osr.SpatialReference()\n", " source.ImportFromEPSG(source_epsg)\n", "\n", " target = osr.SpatialReference()\n", " target.ImportFromEPSG(target_epsg)\n", "\n", " transform = osr.CoordinateTransformation(source, target)\n", "\n", " point = ogr.CreateGeometryFromWkt(geom)\n", " point.Transform(transform)\n", "\n", " return point.ExportToWkt()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "def extend_aoi(center_x, center_y, extent):\n", " \n", " polar_epsg = 3575 # 3995\n", " latlon_epsg = 4326\n", " \n", " center_polar = loads(convert_coords(latlon_epsg, polar_epsg, Point(center_x, center_y).wkt))\n", " \n", " ll = convert_coords(polar_epsg, latlon_epsg, Point(center_polar.x - extent, center_polar.y - extent).wkt)\n", " lr = convert_coords(polar_epsg, latlon_epsg, Point(center_polar.x + extent, center_polar.y - extent).wkt)\n", " ur = convert_coords(polar_epsg, latlon_epsg, Point(center_polar.x + extent, center_polar.y + extent).wkt)\n", " ul = convert_coords(polar_epsg, latlon_epsg, Point(center_polar.x - extent, center_polar.y + extent).wkt)\n", "\n", "\n", " pointList = [loads(ll),\n", " loads(lr), \n", " loads(ur), \n", " loads(ul), \n", " loads(ll)]\n", "\n", " extended_aoi = geometry.Polygon([[p.x, p.y] for p in pointList]).wkt\n", " \n", " return extended_aoi" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "glacier_center_x, glacier_center_y = [float(x) for x in glacier_center['value'].split(',')] " ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'POLYGON ((-35.2717796499525 83.2658579085283, -29.3687708669507 83.8704727024008, -35.334759858866 84.53393836008161, -41.2248291287458 83.8638684209569, -35.2717796499525 83.2658579085283))'" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "aoi_wkt = extend_aoi(glacier_center_x, glacier_center_y, float(geo_extent['value']))\n", "\n", "aoi_wkt" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "8f84f97e1ae941e5bc13e5c0a83f4603", "version_major": 2, "version_minor": 0 }, "text/plain": [ "TWFwKGJhc2VtYXA9eyd1cmwnOiAnaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmcnLCAnbWF4X3pvb20nOiAxOSwgJ2F0dHJpYnV0aW9uJzogJ01hcCDigKY=\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "global m\n", "\n", "from ipyleaflet import Map, Polygon\n", "\n", "m = Map(center=(glacier_center_y, \n", " glacier_center_x), zoom=5)\n", "\n", "aoi = Polygon(\n", " locations=np.asarray([t[::-1] for t in list(loads(aoi_wkt).exterior.coords)]).tolist(),\n", " color=\"green\",\n", " fill_color=\"green\"\n", ")\n", "\n", "m += aoi\n", "m" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Discovery of the master Sentinel-1 product\n", "\n", "In order to generate glacier velocity map using the Offset Tracking tool, the input products must\n", "be two GRD products, one slave and one master, over the same area acquired at different times. \n", "\n", "The time interval should be as short as possible. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Read the saved containing the selected Sentinel-1 acquisition during the Polarstern AIS data analysis" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "slave_prd = GeoDataFrame(pd.read_pickle('s1_prd.pickle'))\n", "\n" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "slave_prd['startdate'] = pd.to_datetime(slave_prd['startdate']) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Set the time of interest to a Sentinel-1 cycle (twelve days): " ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "start_time = (slave_prd.iloc[0]['startdate'] - np.timedelta64(12, 'D')).isoformat() + 'Z'\n", "\n", "stop_time = (slave_prd.iloc[0]['startdate'] - np.timedelta64(1, 'D')).isoformat() + 'Z'\n", " \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Set the area of interest as the slave footprint:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "wkt = slave_prd.iloc[0]['wkt'].wkt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The offset tracking approach requires products of the same track:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "track = slave_prd.iloc[0]['track']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Build the search parameters:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'do': 'terradue', 'pt': 'GRD', 'track': '99', 'stop': '2018-08-21T11:41:38.660000Z', 'start': '2018-08-10T11:41:38.660000Z', 'geom': 'POLYGON ((-37.121357 81.783356, -61.739033 84.10655199999999, -31.865376 86.972076, -11.720141 83.541039, -37.121357 81.783356))'}\n" ] } ], "source": [ "search_params = dict([('geom', wkt),\n", " ('start', start_time),\n", " ('stop', stop_time),\n", " ('track', track),\n", " ('do','terradue'),\n", " ('pt', 'GRD')])\n", "\n", "print search_params " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Do the search to retrieve the candidate masters:" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "series = 'https://catalog.terradue.com/sentinel1/search'\n", "\n", "ciop = cioppy.Cioppy()\n", "\n", "masters = GeoDataFrame(ciop.search(end_point=series, \n", " params=search_params,\n", " output_fields='identifier,enclosure,self,startdate,track,wkt',\n", " model='EOP'))\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Update the _wkt_ column to a geometry and the _startdate_ to date/time:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "masters['wkt'] = masters['wkt'].apply(loads)\n", "masters['startdate'] = pd.to_datetime(masters['startdate']) " ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
enclosureidentifierselfstartdatetrackwkt
0https://store.terradue.com/download/sentinel1/...S1B_EW_GRDH_1SDH_20180810T114237_20180810T1143...https://catalog.terradue.com/sentinel1/search?...2018-08-10 11:42:37.75474499POLYGON ((-52.067234 79.08316000000001, -71.51...
1https://store.terradue.com/download/sentinel1/...S1B_EW_GRDM_1SDH_20180810T114237_20180810T1143...https://catalog.terradue.com/sentinel1/search?...2018-08-10 11:42:37.75549599POLYGON ((-52.065311 79.083237, -71.515289 80....
2https://store.terradue.com/download/sentinel1/...S1B_EW_GRDM_1SDH_20180810T114137_20180810T1142...https://catalog.terradue.com/sentinel1/search?...2018-08-10 11:41:37.75667399POLYGON ((-37.125397 81.78415699999999, -61.74...
\n", "
" ], "text/plain": [ " enclosure \\\n", "0 https://store.terradue.com/download/sentinel1/... \n", "1 https://store.terradue.com/download/sentinel1/... \n", "2 https://store.terradue.com/download/sentinel1/... \n", "\n", " identifier \\\n", "0 S1B_EW_GRDH_1SDH_20180810T114237_20180810T1143... \n", "1 S1B_EW_GRDM_1SDH_20180810T114237_20180810T1143... \n", "2 S1B_EW_GRDM_1SDH_20180810T114137_20180810T1142... \n", "\n", " self \\\n", "0 https://catalog.terradue.com/sentinel1/search?... \n", "1 https://catalog.terradue.com/sentinel1/search?... \n", "2 https://catalog.terradue.com/sentinel1/search?... \n", "\n", " startdate track \\\n", "0 2018-08-10 11:42:37.754744 99 \n", "1 2018-08-10 11:42:37.755495 99 \n", "2 2018-08-10 11:41:37.756673 99 \n", "\n", " wkt \n", "0 POLYGON ((-52.067234 79.08316000000001, -71.51... \n", "1 POLYGON ((-52.065311 79.083237, -71.515289 80.... \n", "2 POLYGON ((-37.125397 81.78415699999999, -61.74... " ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "masters.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define a function to determine:\n", "\n", "* the overlap between acquisition footprints - **slave_coverage**\n", "* the intersection with the AOI - **aoi_intersection**\n", "* the temporal baseline in days between the master and the slave - **temporal_baseline**" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "def analyse(row, slave, aoi_wkt):\n", "\n", " aoi = loads(aoi_wkt)\n", " \n", " slave_wkt = slave.iloc[0]['wkt']\n", " slave_date = slave.iloc[0]['startdate']\n", " \n", " slave_coverage = row['wkt'].area / slave_wkt.area * 100\n", " aoi_intersection = (row['wkt'].intersection(aoi).area / aoi.area) * 100\n", " temporal_baseline = round(divmod((slave_date - row['startdate']).total_seconds(), 3600 * 24)[0] +\n", " round(divmod((slave_date - row['startdate']).total_seconds(), 3600 * 24)[1])/(3600 * 24))\n", " \n", " series = dict([('slave_coverage', slave_coverage),\n", " ('aoi_intersection', aoi_intersection),\n", " ('temporal_baseline', temporal_baseline)])\n", " \n", " return pd.Series(series)\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Add the columns to the masters " ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "masters = masters.merge(masters.apply(lambda row: analyse(row, slave_prd, aoi_wkt), axis=1), \n", " left_index=True,\n", " right_index=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Select the _best_ master: biggest AOI intersection and lowest temporal baseline:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "enclosure https://store.terradue.com/download/sentinel1/...\n", "identifier S1B_EW_GRDM_1SDH_20180810T114137_20180810T1142...\n", "self https://catalog.terradue.com/sentinel1/search?...\n", "startdate 2018-08-10 11:41:37.756673\n", "track 99\n", "wkt POLYGON ((-37.125397 81.78415699999999, -61.74...\n", "aoi_intersection 100\n", "slave_coverage 100.012\n", "temporal_baseline 12\n", "Name: 2, dtype: object" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "masters.sort_values(['aoi_intersection', 'temporal_baseline'], ascending=[False, True]).iloc[0]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "masters.sort_values(['aoi_intersection', 'temporal_baseline'], ascending=[False, True]).iloc[0].name" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
enclosureidentifierselfstartdatetrackwktaoi_intersectionslave_coveragetemporal_baseline
2https://store.terradue.com/download/sentinel1/...S1B_EW_GRDM_1SDH_20180810T114137_20180810T1142...https://catalog.terradue.com/sentinel1/search?...2018-08-10 11:41:37.75667399POLYGON ((-37.125397 81.78415699999999, -61.74...100.0100.01205812.0
\n", "
" ], "text/plain": [ " enclosure \\\n", "2 https://store.terradue.com/download/sentinel1/... \n", "\n", " identifier \\\n", "2 S1B_EW_GRDM_1SDH_20180810T114137_20180810T1142... \n", "\n", " self \\\n", "2 https://catalog.terradue.com/sentinel1/search?... \n", "\n", " startdate track \\\n", "2 2018-08-10 11:41:37.756673 99 \n", "\n", " wkt aoi_intersection \\\n", "2 POLYGON ((-37.125397 81.78415699999999, -61.74... 100.0 \n", "\n", " slave_coverage temporal_baseline \n", "2 100.012058 12.0 " ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "masters.iloc[[masters.sort_values(['aoi_intersection', 'temporal_baseline'], ascending=[False, True]).iloc[0].name]]" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "master_prd = masters.iloc[[masters.sort_values(['aoi_intersection', 'temporal_baseline'], ascending=[False, True]).iloc[0].name]]" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
enclosureidentifierselfstartdatetrackwktcontainslocal_path
4https://store.terradue.com/download/sentinel1/...S1B_EW_GRDM_1SDH_20180822T114138_20180822T1142...https://catalog.terradue.com/sentinel1/search?...2018-08-22 11:41:38.66099POLYGON ((-37.121357 81.783356, -61.739033 84....True/workspace/data2/S1B_EW_GRDM_1SDH_20180822T114...
\n", "
" ], "text/plain": [ " enclosure \\\n", "4 https://store.terradue.com/download/sentinel1/... \n", "\n", " identifier \\\n", "4 S1B_EW_GRDM_1SDH_20180822T114138_20180822T1142... \n", "\n", " self startdate \\\n", "4 https://catalog.terradue.com/sentinel1/search?... 2018-08-22 11:41:38.660 \n", "\n", " track wkt contains \\\n", "4 99 POLYGON ((-37.121357 81.783356, -61.739033 84.... True \n", "\n", " local_path \n", "4 /workspace/data2/S1B_EW_GRDM_1SDH_20180822T114... " ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "slave_prd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create a data frame with the pair:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "pair = pd.concat([master_prd.drop(['aoi_intersection', 'slave_coverage', 'temporal_baseline'], axis=1), \n", " slave_prd])" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
containsenclosureidentifierlocal_pathselfstartdatetrackwkt
2NaNhttps://store.terradue.com/download/sentinel1/...S1B_EW_GRDM_1SDH_20180810T114137_20180810T1142...NaNhttps://catalog.terradue.com/sentinel1/search?...2018-08-10 11:41:37.75667399POLYGON ((-37.125397 81.78415699999999, -61.74...
4Truehttps://store.terradue.com/download/sentinel1/...S1B_EW_GRDM_1SDH_20180822T114138_20180822T1142.../workspace/data2/S1B_EW_GRDM_1SDH_20180822T114...https://catalog.terradue.com/sentinel1/search?...2018-08-22 11:41:38.66000099POLYGON ((-37.121357 81.783356, -61.739033 84....
\n", "
" ], "text/plain": [ " contains enclosure \\\n", "2 NaN https://store.terradue.com/download/sentinel1/... \n", "4 True https://store.terradue.com/download/sentinel1/... \n", "\n", " identifier \\\n", "2 S1B_EW_GRDM_1SDH_20180810T114137_20180810T1142... \n", "4 S1B_EW_GRDM_1SDH_20180822T114138_20180822T1142... \n", "\n", " local_path \\\n", "2 NaN \n", "4 /workspace/data2/S1B_EW_GRDM_1SDH_20180822T114... \n", "\n", " self \\\n", "2 https://catalog.terradue.com/sentinel1/search?... \n", "4 https://catalog.terradue.com/sentinel1/search?... \n", "\n", " startdate track \\\n", "2 2018-08-10 11:41:37.756673 99 \n", "4 2018-08-22 11:41:38.660000 99 \n", "\n", " wkt \n", "2 POLYGON ((-37.125397 81.78415699999999, -61.74... \n", "4 POLYGON ((-37.121357 81.783356, -61.739033 84.... " ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pair" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Add the Sentinel-1 pair discovered:" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "" ], "text/plain": [ "" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pair.iloc[0]['wkt']" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [], "source": [ "slave_map = Polygon(\n", " locations=np.asarray([t[::-1] for t in list(pair.iloc[1]['wkt'].exterior.coords)]).tolist(),\n", " color='red',\n", " fill_color='red',\n", " weight=6,\n", " fill_opacity=0.1\n", ")\n", "\n", "master_map = Polygon(\n", " locations=np.asarray([t[::-1] for t in list(pair.iloc[0]['wkt'].exterior.coords)]).tolist(),\n", " color='yellow',\n", " fill_color='yellow',\n", " weight=3,\n", " fill_opacity=0.1\n", ")\n", "\n", "m += slave_map\n", "m += master_map\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Stage-in the master product" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "nan" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pair.iloc[0]['local_path']" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "float" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(pair.iloc[0]['local_path'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Stage-in the product:" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "target_dir = '/workspace/data2'\n", "\n", "if not os.path.exists(target_dir):\n", " os.makedirs(target_dir)\n", "\n", "def stage_in(row):\n", " \n", " if isinstance(row['local_path'], float):\n", " \n", " if math.isnan(row['local_path']):\n", "\n", " print row['enclosure']\n", " local_path = ciop.copy(row['enclosure'], extract=False, target=target_dir)\n", " row['local_path'] = local_path\n", " \n", " return row \n", " " ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "https://store.terradue.com/download/sentinel1/files/v1/S1B_EW_GRDM_1SDH_20180810T114137_20180810T114237_012200_016799_1944\n" ] } ], "source": [ "pair = pair.apply(lambda row: stage_in(row), axis=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now the Sentinel-1 data frame has the local_path information for both products and looks like:" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
containsenclosureidentifierlocal_pathselfstartdatetrackwkt
2NaNhttps://store.terradue.com/download/sentinel1/...S1B_EW_GRDM_1SDH_20180810T114137_20180810T1142.../workspace/data2/S1B_EW_GRDM_1SDH_20180810T114...https://catalog.terradue.com/sentinel1/search?...2018-08-10 11:41:37.75667399POLYGON ((-37.125397 81.78415699999999, -61.74...
4Truehttps://store.terradue.com/download/sentinel1/...S1B_EW_GRDM_1SDH_20180822T114138_20180822T1142.../workspace/data2/S1B_EW_GRDM_1SDH_20180822T114...https://catalog.terradue.com/sentinel1/search?...2018-08-22 11:41:38.66000099POLYGON ((-37.121357 81.783356, -61.739033 84....
\n", "
" ], "text/plain": [ " contains enclosure \\\n", "2 NaN https://store.terradue.com/download/sentinel1/... \n", "4 True https://store.terradue.com/download/sentinel1/... \n", "\n", " identifier \\\n", "2 S1B_EW_GRDM_1SDH_20180810T114137_20180810T1142... \n", "4 S1B_EW_GRDM_1SDH_20180822T114138_20180822T1142... \n", "\n", " local_path \\\n", "2 /workspace/data2/S1B_EW_GRDM_1SDH_20180810T114... \n", "4 /workspace/data2/S1B_EW_GRDM_1SDH_20180822T114... \n", "\n", " self \\\n", "2 https://catalog.terradue.com/sentinel1/search?... \n", "4 https://catalog.terradue.com/sentinel1/search?... \n", "\n", " startdate track \\\n", "2 2018-08-10 11:41:37.756673 99 \n", "4 2018-08-22 11:41:38.660000 99 \n", "\n", " wkt \n", "2 POLYGON ((-37.125397 81.78415699999999, -61.74... \n", "4 POLYGON ((-37.121357 81.783356, -61.739033 84.... " ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pair" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The local files to process are thus:" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
enclosure
2https://store.terradue.com/download/sentinel1/...
4https://store.terradue.com/download/sentinel1/...
\n", "
" ], "text/plain": [ " enclosure\n", "2 https://store.terradue.com/download/sentinel1/...\n", "4 https://store.terradue.com/download/sentinel1/..." ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pair[['enclosure']]" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['/workspace/data2/S1B_EW_GRDM_1SDH_20180810T114137_20180810T114237_012200_016799_1944.zip',\n", " '/workspace/data2/S1B_EW_GRDM_1SDH_20180822T114138_20180822T114238_012375_016D07_E770.zip']" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "local_paths = list(pair['local_path'].values)\n", "\n", "local_paths" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Offset tracking workflow" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Create a SNAP graph" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The autoreload extension is already loaded. To reload it, use:\n", " %reload_ext autoreload\n" ] } ], "source": [ "%load_ext autoreload\n", "%autoreload 2\n", "\n", "import sys\n", "import os\n", "sys.path.append(os.getcwd())\n", "import ellip_snap_helpers" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [], "source": [ "mygraph = ellip_snap_helpers.GraphProcessor()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Read the products" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": false, "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "operator = 'Read'\n", "\n", "read_nodes = []\n", "\n", "parameters = ellip_snap_helpers.get_operator_default_parameters(operator)\n", "\n", "for index, s1path in enumerate(local_paths):\n", " \n", " parameters['file'] = s1path\n", " \n", " node_id = 'Read(%s)' % index\n", " \n", " read_nodes.append(node_id)\n", " \n", " mygraph.add_node(node_id, 'Read', parameters, '')\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The graph now contains two nodes for reading the pair of Sentinel-1 products:" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " 1.0\n", " \n", " Read\n", " \n", " \n", " \n", " /workspace/data2/S1B_EW_GRDM_1SDH_20180810T114137_20180810T114237_012200_016799_1944.zip\n", " \n", " \n", " \n", " Read\n", " \n", " \n", " \n", " /workspace/data2/S1B_EW_GRDM_1SDH_20180822T114138_20180822T114238_012375_016D07_E770.zip\n", " \n", " \n", "\n", "\n" ] } ], "source": [ "mygraph.view_graph()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Apply orbit file SNAP Operator" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The orbit state vectors provided in the metadata of a SAR product are generally not accurate and can be refined with the precise orbit files which are available days-to-weeks after the generation of the product. \n", "\n", "The orbit file provides accurate satellite position and velocity information. Based on this information, the orbit state vectors in the abstract metadata of the product are updated.\n", "\n", "The Precise Orbit Determination (POD) service for SENTINEL-1 provides Restituted orbit files and Precise Orbit Ephemerides (POE) orbit files. POE files cover approximately 28 hours and contain orbit state vectors at fixed time steps of 10 seconds intervals. Files are generated one file per day and are delivered within 20 days after data acquisition. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Get the parameters of the **Apply orbit file** SNAP Operator:" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [], "source": [ "operator = 'Apply-Orbit-File'\n", "\n", "parameters = ellip_snap_helpers.get_operator_default_parameters(operator)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Apply the operator:" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [], "source": [ "orbit_nodes = []\n", "\n", "for index, source_node in enumerate(read_nodes):\n", " \n", " node_id = 'Apply-Orbit-File(%s)' % index\n", " \n", " orbit_nodes.append(node_id)\n", " \n", " mygraph.add_node(node_id, 'Apply-Orbit-File', parameters, source_node)\n", " \n", " " ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " 1.0\n", " \n", " Read\n", " \n", " \n", " \n", " /workspace/data2/S1B_EW_GRDM_1SDH_20180810T114137_20180810T114237_012200_016799_1944.zip\n", " \n", " \n", " \n", " Read\n", " \n", " \n", " \n", " /workspace/data2/S1B_EW_GRDM_1SDH_20180822T114138_20180822T114238_012375_016D07_E770.zip\n", " \n", " \n", " \n", " Apply-Orbit-File\n", " \n", " \n", " \n", " \n", " 3\n", " Sentinel Precise (Auto Download)\n", " false\n", " \n", " \n", " \n", " Apply-Orbit-File\n", " \n", " \n", " \n", " \n", " 3\n", " Sentinel Precise (Auto Download)\n", " false\n", " \n", " \n", "\n", "\n" ] } ], "source": [ "mygraph.view_graph()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## DEM Assisted Coregistration" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For Offset Tracking processing, two images must be coregistered into a stack. \n", "\n", "The image that was acquired earlier is selected as the master and the other image is selected as the slave. The pixels in slave image will be moved to align with the master image with the help of the orbital data and a reference DEM.\n", "\n", "Coregistration ensures that each ground target from stationary scene contributes to the same (range, azimuth) pixel in both the master and the slave image.\n", "\n", "For Offset Tracking application, DEM Assisted Coregistration is used. It coregisters the products strictly based on the geometry using a DEM, orbit positions and times. This avoids possibly warping the image incorrectly due to the movement in the scene.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The default DEM, which is SRTM 3 Sec, covers most area of the earth's surface between –60 degree latitude and +60 degree latitude. However, it does not cover the high latitude area where Rink Glacier is located. \n", "\n", "Therefore, ASTER GDEM, GETASSE30 or ACE30 DEM could be selected. " ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'demName': 'ACE30',\n", " 'demResamplingMethod': 'BICUBIC_INTERPOLATION',\n", " 'externalDEMFile': None,\n", " 'externalDEMNoDataValue': '0',\n", " 'maskOutAreaWithoutElevation': 'true',\n", " 'outputRangeAzimuthOffset': 'false',\n", " 'resamplingType': 'BISINC_5_POINT_INTERPOLATION',\n", " 'tileExtensionPercent': '50'}" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "operator = 'DEM-Assisted-Coregistration'\n", "\n", "node_id = 'DEM-Assisted-Coregistration'\n", "\n", "source_nodes = ['Apply-Orbit-File(0)', 'Apply-Orbit-File(1)']\n", "\n", "parameters = ellip_snap_helpers.get_operator_default_parameters(operator)\n", "\n", "parameters['demName'] = 'ACE30'\n", "\n", "parameters" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [], "source": [ "mygraph.add_node(node_id, operator, parameters, source_nodes)" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " 1.0\n", " \n", " Read\n", " \n", " \n", " \n", " /workspace/data2/S1B_EW_GRDM_1SDH_20180810T114137_20180810T114237_012200_016799_1944.zip\n", " \n", " \n", " \n", " Read\n", " \n", " \n", " \n", " /workspace/data2/S1B_EW_GRDM_1SDH_20180822T114138_20180822T114238_012375_016D07_E770.zip\n", " \n", " \n", " \n", " Apply-Orbit-File\n", " \n", " \n", " \n", " \n", " 3\n", " Sentinel Precise (Auto Download)\n", " false\n", " \n", " \n", " \n", " Apply-Orbit-File\n", " \n", " \n", " \n", " \n", " 3\n", " Sentinel Precise (Auto Download)\n", " false\n", " \n", " \n", " \n", " DEM-Assisted-Coregistration\n", " \n", " \n", " \n", " \n", " \n", " ACE30\n", " BICUBIC_INTERPOLATION\n", " true\n", " false\n", " 0\n", " 50\n", " \n", " BISINC_5_POINT_INTERPOLATION\n", " \n", " \n", "\n", "\n" ] } ], "source": [ "mygraph.view_graph()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Offset-Tracking" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Offset Tracking operator estimates the movement of glacier surfaces between master and slave images in both slant-range and azimuth direction. It performs cross-correlation on selected Ground Control Point (GCP) in master and slave images. \n", "\n", "Then the glacier velocities on the selected GCPs are computed based on the offsets estimated by the cross-correlation. Finally the glacier velocity map is generated through interpolation of the velocities computed on the GCP grid.\n", "\n", "The Offset Tracking is performed in the following sub-steps:\n", "\n", "* For each point in the user specified GCP grid in master image, compute its corresponding pixel position in slave image using normalized cross-correlation.\n", "* If the compute offset between master and slave GCP positions exceeds the maximum offset (computed from user specified maximum velocity), then the GCP point is marked as outlier.\n", "* Perform local average for the offset on valid GCP points.\n", "* Fill holes caused by the outliers. The offset at hole point will be replaced by a new offset computed by local weighted average.\n", "* Compute the velocities for all points on GCP grid from their offsets.\n", "* Finally, compute velocities for all pixels in the master image from the velocities on GCP grid by interpolation." ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'averageBoxSize': '5',\n", " 'fillHoles': 'true',\n", " 'gridAzimuthSpacing': '40',\n", " 'gridRangeSpacing': '40',\n", " 'maxVelocity': '5',\n", " 'radius': '4',\n", " 'registrationWindowHeight': '128',\n", " 'registrationWindowWidth': '128',\n", " 'resamplingType': 'BICUBIC_INTERPOLATION',\n", " 'roiVector': None,\n", " 'spatialAverage': 'true',\n", " 'xCorrThreshold': '0.1'}" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "operator = 'Offset-Tracking'\n", "\n", "node_id = 'Offset-Tracking'\n", "\n", "source_node = 'DEM-Assisted-Coregistration'\n", "\n", "parameters = ellip_snap_helpers.get_operator_default_parameters(operator)\n", "\n", "parameters['maxVelocity'] = '5'\n", "\n", "parameters" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [], "source": [ "mygraph.add_node(node_id, operator, parameters, source_node)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Terrain correction" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [], "source": [ "map_proj = \"\"\"PROJCS[\"WGS 84 / Arctic Polar Stereographic\", \n", " GEOGCS[\"WGS 84\", \n", " DATUM[\"World Geodetic System 1984\", \n", " SPHEROID[\"WGS 84\", 6378137.0, 298.257223563, AUTHORITY[\"EPSG\",\"7030\"]], \n", " AUTHORITY[\"EPSG\",\"6326\"]], \n", " PRIMEM[\"Greenwich\", 0.0, AUTHORITY[\"EPSG\",\"8901\"]], \n", " UNIT[\"degree\", 0.017453292519943295], \n", " AXIS[\"Geodetic longitude\", EAST], \n", " AXIS[\"Geodetic latitude\", NORTH], \n", " AUTHORITY[\"EPSG\",\"4326\"]], \n", " PROJECTION[\"Polar Stereographic (variant B)\", AUTHORITY[\"EPSG\",\"9829\"]], \n", " PARAMETER[\"central_meridian\", 0.0], \n", " PARAMETER[\"Standard_Parallel_1\", 71.0], \n", " PARAMETER[\"false_easting\", 0.0], \n", " PARAMETER[\"false_northing\", 0.0], \n", " UNIT[\"m\", 1.0], \n", " AXIS[\"Easting\", \"South along 90 deg East\"], \n", " AXIS[\"Northing\", \"South along 180 deg\"], \n", " AUTHORITY[\"EPSG\",\"3995\"]]\"\"\"" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [], "source": [ "operator = 'Terrain-Correction'\n", "\n", "node_id = 'Terrain-Correction'\n", "\n", "source_node = 'Offset-Tracking'\n", "\n", "parameters = ellip_snap_helpers.get_operator_default_parameters(operator)\n", "\n", "parameters['demName'] = 'ACE30'\n", "parameters['mapProjection'] = map_proj \n", "parameters['nodataValueAtSea'] = 'false' " ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [], "source": [ "mygraph.add_node(node_id, operator, parameters, source_node)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Subset" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'bandNames': None,\n", " 'copyMetadata': 'false',\n", " 'fullSwath': 'false',\n", " 'geoRegion': 'POLYGON ((-35.2717796499525 83.2658579085283, -29.3687708669507 83.8704727024008, -35.334759858866 84.53393836008161, -41.2248291287458 83.8638684209569, -35.2717796499525 83.2658579085283))',\n", " 'region': None,\n", " 'subSamplingX': '1',\n", " 'subSamplingY': '1',\n", " 'tiePointGridNames': None}" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "operator = 'Subset'\n", "\n", "node_id = 'Subset' \n", "\n", "source_node = 'Terrain-Correction'\n", "\n", "parameters = ellip_snap_helpers.get_operator_default_parameters(operator)\n", "\n", "parameters['geoRegion'] = aoi_wkt\n", " \n", "parameters" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [], "source": [ "mygraph.add_node(node_id, operator, parameters, source_node)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Write node" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [], "source": [ "output_name = 'velocity'" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [], "source": [ "operator = 'Write'\n", "\n", "node_id = 'Write' \n", "\n", "source_node = 'Subset' \n", "\n", "parameters = ellip_snap_helpers.get_operator_default_parameters(operator)\n", "\n", "parameters['file'] = output_name\n", "parameters['formatName'] = 'GeoTIFF-BigTiff'\n" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [], "source": [ "mygraph.add_node(operator, \n", " node_id, \n", " parameters,\n", " source_node) " ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Processing the graph\n", "Process PID: 30752\n", "Executing processing graph\n", "======\n", "Master: 10Aug2018\n", "Slave: 10Aug2018 prep baseline: 0.0 temp baseline: 0.0\n", "Slave: 22Aug2018 prep baseline: -136.77487 temp baseline: -12.0000105\n", "\n", "======\n", "Master: 22Aug2018\n", "Slave: 10Aug2018 prep baseline: 136.7817 temp baseline: 12.0000105\n", "Slave: 22Aug2018 prep baseline: 0.0 temp baseline: 0.0\n", "\n", "....10%....20%....30%....40%....50%....60%....70%....80%....90% done.\n", "INFO: org.esa.snap.core.gpf.operators.tooladapter.ToolAdapterIO: Initializing external tool adapters\n", "INFO: org.hsqldb.persist.Logger: dataFileCache open start\n", "-- org.jblas INFO Deleting /tmp/jblas1394895126257968232/libjblas.so\n", "-- org.jblas INFO Deleting /tmp/jblas1394895126257968232/libjblas_arch_flavor.so\n", "-- org.jblas INFO Deleting /tmp/jblas1394895126257968232\n", "\n", "Done.\n" ] } ], "source": [ "mygraph.run()" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "image/png": "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qG5jqHkAAAAKwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHwhcAAEAHs+FrGIa/NQzDHw7D8E+zad8yDMMvD8Pwz6+v/0z22E8Ow/DFYRh+axiGv5BN/75hGH79+rG/MQzDsP+nAwAAcDctqXz97Yj4wWLaT0TEr4zj+OmI+JXr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6i/FAO8nom8houeI6FUi+rXTmlOcO621ryKiPyain9+27Yv8Ws1BhYfSf2oOujDOVXy9QkRvZeffeAgrijexbdsrh/+vEdFH6fZjhF84PFanw//XDtGrXxUa2f7yyuFYhhdXyLZtX9i27WbbtsdE9Lv0/x9lrv5TPEFr7SHdOs5/sG3bnxyCaw4qQmj9p+agy+NcxdcniOiZ1trbWmtfRrdfGPzYiW0qzozW2le21r66HxPR9xHRp+m2r7z3EO29RPSnh+OPEdG7W2tf3lp7G91+yfQfjmt1cYak+svh40FfbK29/fCGqB9jaYorozvNB36Ybucgouo/heBwv3+PiD67bduvs0s1BxUuqP/UHHR5PDi1ARrbtj1qrf0MEf0lEd0nog9s2/biic0qzo+niOijhzekPiCiP9y27S9aa58goo+01n6ciP6diH6EiGjbthdbax8hos/Q7VuDnt+27eY0phenoLX2R0T0DiJ6S2vt80T0y0T0q5TvLz9Nt2+++woi+vPDX3HHAf3nHa215+j2o2KfI6KfIqr+U6h8FxH9KBF9qrX2wiHsl6jmoCIG6j/vqTnosmi3Hy8uiqIoiqIoiqIo9uRcP3ZYFEVRFEVRFEVxpyjxVRRFURRFURRFcQRKfBVFURRFURRFURyBEl9FURRFURRFURRHoMRXURRFURRFURTFESjxVRRFURRFURRFcQRKfBVFURRFURRFURyBEl9FURRFURRFURRH4P8Aq6CaGnkV4doAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ds = gdal.Open(output_name + '.tif')\n", "band = ds.GetRasterBand(1)\n", "\n", "fig = plt.figure(figsize=(15,15))\n", "\n", "imgplot = plt.imshow(band.ReadAsArray().astype(np.float),\n", " cmap=plt.cm.binary, \n", " vmin=0, \n", " vmax=2.5)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### License" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "This work is licenced under a [Attribution-ShareAlike 4.0 International License (CC BY-SA 4.0)](http://creativecommons.org/licenses/by-sa/4.0/) \n", "\n", "YOU ARE FREE TO:\n", "\n", "* Share - copy and redistribute the material in any medium or format.\n", "* Adapt - remix, transform, and built upon the material for any purpose, even commercially.\n", "\n", "UNDER THE FOLLOWING TERMS:\n", "\n", "* Attribution - You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.\n", "* ShareAlike - If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original." ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.12" } }, "nbformat": 4, "nbformat_minor": 2 }