Skip to content

Instantly share code, notes, and snippets.

@brookisme
Created January 17, 2019 01:23
Show Gist options
  • Save brookisme/e92e9ac586fbcdb9e482d910badb916b to your computer and use it in GitHub Desktop.
Save brookisme/e92e9ac586fbcdb9e482d910badb916b to your computer and use it in GitHub Desktop.
Crop Isolated AOIs in geotiff
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pdb\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from rasterio.plot import show\n",
"from rasterio.plot import show_hist\n",
"import rasterio as rio\n",
"import geopandas as gpd\n",
"import json\n",
"from rasterio.mask import mask\n",
"import geojson\n",
"from pprint import pprint\n",
"from random import choice\n",
"from rasterio import features\n",
"\n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def image_data(path,src=False):\n",
" if src:\n",
" src=rio.open(path,'r')\n",
" return src, src.read(), src.profile\n",
" else:\n",
" with rio.open(path,'r') as src:\n",
" profile=src.profile\n",
" image=src.read()\n",
" return image, profile\n",
"\n",
"\n",
"def image_write(im,path,profile):\n",
" with rio.open(path,'w',**profile) as dst:\n",
" dst.write(im)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n",
"\n",
"#### CREATE MASK TIF"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/brook/anaconda3/lib/python3.7/site-packages/rasterio/__init__.py:160: FutureWarning: GDAL-style transforms are deprecated and will not be supported in Rasterio 1.0.\n",
" transform = guard_transform(transform)\n"
]
}
],
"source": [
"im,p=image_data('aue.tif')\n",
"msk=(im!=255).astype('uint8')\n",
"image_write(msk,'aue-mask.tif',p)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n",
"\n",
"#### CREATE MASK VECTORS"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Creating output aue-mask.shp of format ESRI Shapefile.\n",
"0...10...20...30...40...50...60...70...80...90...100 - done.\n"
]
}
],
"source": [
"!gdal_polygonize.py -8 aue-mask.tif aue-mask.shp -b 1 -f \"ESRI Shapefile\""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(119, 2)\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>DN</th>\n",
" <th>geometry</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>54</th>\n",
" <td>0</td>\n",
" <td>POLYGON ((241080 1925910, 241100 1925910, 2411...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>1</td>\n",
" <td>POLYGON ((219420 1935610, 219490 1935610, 2194...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>79</th>\n",
" <td>0</td>\n",
" <td>POLYGON ((241110 1925730, 241120 1925730, 2411...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" DN geometry\n",
"54 0 POLYGON ((241080 1925910, 241100 1925910, 2411...\n",
"14 1 POLYGON ((219420 1935610, 219490 1935610, 2194...\n",
"79 0 POLYGON ((241110 1925730, 241120 1925730, 2411..."
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mask_df=gpd.read_file('aue-mask.shp')\n",
"print(mask_df.shape)\n",
"mask_df.sample(3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"H=41\n",
"W=41\n",
" \n",
"def update_profile(profile,w,h,affine):\n",
" profile['width']=w\n",
" profile['height']=h\n",
" profile['affine']=affine\n",
" profile.pop('transform',None)\n",
" return profile\n",
"\n",
"\n",
"def crop_sizes(in_size,out_size):\n",
" assert (in_size>=out_size), 'cropping must be >= 0 ({in_size},{out_size})'\n",
" diff=in_size-out_size\n",
" c_0=diff//2\n",
" c_1=diff-c_0\n",
" return c_0, c_1\n",
"\n",
" \n",
"def crop(src,im,profile,h=H,w=W):\n",
" if im.ndim==3:\n",
" im_h,im_w=im.shape[1:]\n",
" else:\n",
" im_h,im_w=im.shape\n",
" crp_y_0,crp_y_1=crop_sizes(im_h,h)\n",
" crp_x_0,crp_x_1=crop_sizes(im_w,w)\n",
" win=((crp_y_0,crp_x_0),(h,w))\n",
" affine=src.window_transform(win)\n",
" profile=update_profile(profile,h,w,affine)\n",
" if im.ndim==3:\n",
" im=im[:,crp_y_0:crp_y_0+h,crp_x_0:crp_x_0+w] \n",
" else:\n",
" im=im[crp_y_0:crp_y_0+h,crp_x_0:crp_x_0+w] \n",
" return im, profile\n",
"\n",
"\n",
"def cut_img(src,geom):\n",
" im,affine=mask(raster=src, shapes=geom, crop=True)\n",
" profile=src.profile.copy()\n",
" if im.ndim==3:\n",
" _,h,w=im.shape\n",
" else:\n",
" h,w=im.shape\n",
" profile=update_profile(profile,h,w,affine)\n",
" return im, profile\n",
"\n",
"\n",
"def show_data(im,profile,figsize=(8,4),x_max=10,bins=256):\n",
" print(\"IMAGE SHAPE:\",im.shape)\n",
" pprint(profile)\n",
" show(im)\n",
" fig,ax=plt.subplots(1,figsize=figsize)\n",
" ax.set_xlim((0,x_max))\n",
" show_hist(im,ax=ax,bins=bins)\n",
" plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n",
"\n",
"#### CLEAN UP GEOMS"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"200.0\n"
]
},
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"100.0\" height=\"100.0\" viewBox=\"241009.2 1925689.2 11.599999999976717 21.600000000093132\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,3851400.0)\"><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"0.43200000000186267\" opacity=\"0.6\" d=\"M 241010.0,1925710.0 L 241020.0,1925710.0 L 241020.0,1925690.0 L 241010.0,1925690.0 L 241010.0,1925710.0 z\" /></g></svg>"
],
"text/plain": [
"<shapely.geometry.polygon.Polygon at 0x11a029160>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bad=mask_df[mask_df.area<1000].sample(1).iloc[0]\n",
"print(bad.geometry.area)\n",
"bad.geometry"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"MIN_AREA=99000.0\n",
"MAX_AREA=101000.0"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"NB AOIs: 78\n"
]
}
],
"source": [
"aois=mask_df[(mask_df.area>MIN_AREA) & (mask_df.area<MAX_AREA)].copy()\n",
"aois.loc[:,'geometry']=aois.geometry.apply(lambda g: g.buffer(25))\n",
"aois=aois.reset_index(drop=True)\n",
"print(\"NB AOIs:\",aois.shape[0])"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"300\" height=\"300\" viewBox=\"237059.0 1924599.0 432.0 432.0\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,3849630.0)\"><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"2.88\" opacity=\"0.6\" d=\"M 237085.0,1924740.0370437163 L 237084.1401678959,1924740.674738666 L 237082.32233047034,1924742.3223304704 L 237080.67473866593,1924744.140167896 L 237079.21325969245,1924746.1107441746 L 237077.95196839128,1924748.2150815793 L 237076.90301168722,1924750.432914191 L 237076.07649160668,1924752.7428830687 L 237075.48036798992,1924755.1227419495 L 237075.1203818332,1924757.5495714918 L 237075.0,1924760.0 L 237075.0,1924870.0 L 237075.1203818332,1924872.4504285082 L 237075.48036798992,1924874.8772580505 L 237076.07649160668,1924877.2571169313 L 237076.90301168722,1924879.567085809 L 237077.95196839128,1924881.7849184207 L 237079.21325969245,1924883.8892558254 L 237080.67473866593,1924885.859832104 L 237082.32233047034,1924887.6776695296 L 237084.1401678959,1924889.325261334 L 237085.0,1924889.9629562837 L 237085.0,1924890.0 L 237085.1203818332,1924892.4504285082 L 237085.48036798992,1924894.8772580505 L 237086.07649160668,1924897.2571169313 L 237086.90301168722,1924899.567085809 L 237087.95196839128,1924901.7849184207 L 237089.21325969245,1924903.8892558254 L 237090.67473866593,1924905.859832104 L 237092.32233047034,1924907.6776695296 L 237094.1401678959,1924909.325261334 L 237095.0,1924909.9629562837 L 237095.0,1924910.0 L 237095.1203818332,1924912.4504285082 L 237095.48036798992,1924914.8772580505 L 237096.07649160668,1924917.2571169313 L 237096.90301168722,1924919.567085809 L 237097.95196839128,1924921.7849184207 L 237099.21325969245,1924923.8892558254 L 237100.67473866593,1924925.859832104 L 237102.32233047034,1924927.6776695296 L 237104.1401678959,1924929.325261334 L 237105.0,1924929.9629562837 L 237105.0,1924930.0 L 237105.1203818332,1924932.4504285082 L 237105.48036798992,1924934.8772580505 L 237106.07649160668,1924937.2571169313 L 237106.90301168722,1924939.567085809 L 237107.95196839128,1924941.7849184207 L 237109.21325969245,1924943.8892558254 L 237110.67473866593,1924945.859832104 L 237112.32233047034,1924947.6776695296 L 237114.1401678959,1924949.325261334 L 237116.1107441745,1924950.7867403075 L 237118.05057177402,1924951.949428226 L 237119.21325969245,1924953.8892558254 L 237120.67473866593,1924955.859832104 L 237122.32233047034,1924957.6776695296 L 237124.1401678959,1924959.325261334 L 237126.1107441745,1924960.7867403075 L 237128.05057177402,1924961.949428226 L 237129.21325969245,1924963.8892558254 L 237130.67473866593,1924965.859832104 L 237132.32233047034,1924967.6776695296 L 237134.1401678959,1924969.325261334 L 237136.1107441745,1924970.7867403075 L 237138.05057177402,1924971.949428226 L 237139.21325969245,1924973.8892558254 L 237140.67473866593,1924975.859832104 L 237142.32233047034,1924977.6776695296 L 237144.1401678959,1924979.325261334 L 237146.1107441745,1924980.7867403075 L 237148.21508157934,1924982.0480316088 L 237150.43291419087,1924983.0969883127 L 237152.74288306863,1924983.9235083933 L 237155.1227419496,1924984.51963201 L 237157.54957149175,1924984.8796181667 L 237160.0,1924985.0 L 237160.03704371626,1924985.0 L 237160.67473866593,1924985.859832104 L 237162.32233047034,1924987.6776695296 L 237164.1401678959,1924989.325261334 L 237166.1107441745,1924990.7867403075 L 237168.21508157934,1924992.0480316088 L 237170.43291419087,1924993.0969883127 L 237172.74288306863,1924993.9235083933 L 237175.1227419496,1924994.51963201 L 237177.54957149175,1924994.8796181667 L 237180.0,1924995.0 L 237180.03704371626,1924995.0 L 237180.67473866593,1924995.859832104 L 237182.32233047034,1924997.6776695296 L 237184.1401678959,1924999.325261334 L 237186.1107441745,1925000.7867403075 L 237188.21508157934,1925002.0480316088 L 237190.43291419087,1925003.0969883127 L 237192.74288306863,1925003.9235083933 L 237195.1227419496,1925004.51963201 L 237197.54957149175,1925004.8796181667 L 237200.0,1925005.0 L 237200.03704371626,1925005.0 L 237200.67473866593,1925005.859832104 L 237202.32233047034,1925007.6776695296 L 237204.1401678959,1925009.325261334 L 237206.1107441745,1925010.7867403075 L 237208.21508157934,1925012.0480316088 L 237210.43291419087,1925013.0969883127 L 237212.74288306863,1925013.9235083933 L 237215.1227419496,1925014.51963201 L 237217.54957149175,1925014.8796181667 L 237220.0,1925015.0 L 237330.0,1925015.0 L 237332.45042850825,1925014.8796181667 L 237334.8772580504,1925014.51963201 L 237337.25711693137,1925013.9235083933 L 237339.56708580913,1925013.0969883127 L 237341.78491842066,1925012.0480316088 L 237343.8892558255,1925010.7867403075 L 237345.8598321041,1925009.325261334 L 237347.67766952966,1925007.6776695296 L 237349.32526133407,1925005.859832104 L 237349.96295628374,1925005.0 L 237360.0,1925005.0 L 237362.45042850825,1925004.8796181667 L 237364.8772580504,1925004.51963201 L 237367.25711693137,1925003.9235083933 L 237369.56708580913,1925003.0969883127 L 237371.78491842066,1925002.0480316088 L 237373.8892558255,1925000.7867403075 L 237375.8598321041,1924999.325261334 L 237377.67766952966,1924997.6776695296 L 237379.32526133407,1924995.859832104 L 237380.78674030755,1924993.8892558254 L 237381.94942822598,1924991.949428226 L 237383.8892558255,1924990.7867403075 L 237385.8598321041,1924989.325261334 L 237387.67766952966,1924987.6776695296 L 237389.32526133407,1924985.859832104 L 237389.96295628374,1924985.0 L 237390.0,1924985.0 L 237392.45042850825,1924984.8796181667 L 237394.8772580504,1924984.51963201 L 237397.25711693137,1924983.9235083933 L 237399.56708580913,1924983.0969883127 L 237401.78491842066,1924982.0480316088 L 237403.8892558255,1924980.7867403075 L 237405.8598321041,1924979.325261334 L 237407.67766952966,1924977.6776695296 L 237409.32526133407,1924975.859832104 L 237410.78674030755,1924973.8892558254 L 237411.94942822598,1924971.949428226 L 237413.8892558255,1924970.7867403075 L 237415.8598321041,1924969.325261334 L 237417.67766952966,1924967.6776695296 L 237419.32526133407,1924965.859832104 L 237420.78674030755,1924963.8892558254 L 237421.94942822598,1924961.949428226 L 237423.8892558255,1924960.7867403075 L 237425.8598321041,1924959.325261334 L 237427.67766952966,1924957.6776695296 L 237429.32526133407,1924955.859832104 L 237430.78674030755,1924953.8892558254 L 237431.94942822598,1924951.949428226 L 237433.8892558255,1924950.7867403075 L 237435.8598321041,1924949.325261334 L 237437.67766952966,1924947.6776695296 L 237439.32526133407,1924945.859832104 L 237440.78674030755,1924943.8892558254 L 237442.04803160872,1924941.7849184207 L 237443.09698831278,1924939.567085809 L 237443.92350839332,1924937.2571169313 L 237444.51963201008,1924934.8772580505 L 237444.8796181668,1924932.4504285082 L 237445.0,1924930.0 L 237445.0,1924929.9629562837 L 237445.8598321041,1924929.325261334 L 237447.67766952966,1924927.6776695296 L 237449.32526133407,1924925.859832104 L 237450.78674030755,1924923.8892558254 L 237451.94942822598,1924921.949428226 L 237453.8892558255,1924920.7867403075 L 237455.8598321041,1924919.325261334 L 237457.67766952966,1924917.6776695296 L 237459.32526133407,1924915.859832104 L 237460.78674030755,1924913.8892558254 L 237462.04803160872,1924911.7849184207 L 237463.09698831278,1924909.567085809 L 237463.92350839332,1924907.2571169313 L 237464.51963201008,1924904.8772580505 L 237464.8796181668,1924902.4504285082 L 237465.0,1924900.0 L 237465.0,1924889.9629562837 L 237465.8598321041,1924889.325261334 L 237467.67766952966,1924887.6776695296 L 237469.32526133407,1924885.859832104 L 237470.78674030755,1924883.8892558254 L 237472.04803160872,1924881.7849184207 L 237473.09698831278,1924879.567085809 L 237473.92350839332,1924877.2571169313 L 237474.51963201008,1924874.8772580505 L 237474.8796181668,1924872.4504285082 L 237475.0,1924870.0 L 237475.0,1924760.0 L 237474.8796181668,1924757.5495714918 L 237474.51963201008,1924755.1227419495 L 237473.92350839332,1924752.7428830687 L 237473.09698831278,1924750.432914191 L 237472.04803160872,1924748.2150815793 L 237470.78674030755,1924746.1107441746 L 237469.32526133407,1924744.140167896 L 237467.67766952966,1924742.3223304704 L 237465.8598321041,1924740.674738666 L 237465.0,1924740.0370437163 L 237465.0,1924740.0 L 237464.8796181668,1924737.5495714918 L 237464.51963201008,1924735.1227419495 L 237463.92350839332,1924732.7428830687 L 237463.09698831278,1924730.432914191 L 237462.04803160872,1924728.2150815793 L 237460.78674030755,1924726.1107441746 L 237459.32526133407,1924724.140167896 L 237457.67766952966,1924722.3223304704 L 237455.8598321041,1924720.674738666 L 237455.0,1924720.0370437163 L 237455.0,1924720.0 L 237454.8796181668,1924717.5495714918 L 237454.51963201008,1924715.1227419495 L 237453.92350839332,1924712.7428830687 L 237453.09698831278,1924710.432914191 L 237452.04803160872,1924708.2150815793 L 237450.78674030755,1924706.1107441746 L 237449.32526133407,1924704.140167896 L 237447.67766952966,1924702.3223304704 L 237445.8598321041,1924700.674738666 L 237445.0,1924700.0370437163 L 237445.0,1924700.0 L 237444.8796181668,1924697.5495714918 L 237444.51963201008,1924695.1227419495 L 237443.92350839332,1924692.7428830687 L 237443.09698831278,1924690.432914191 L 237442.04803160872,1924688.2150815793 L 237440.78674030755,1924686.1107441746 L 237439.32526133407,1924684.140167896 L 237437.67766952966,1924682.3223304704 L 237435.8598321041,1924680.674738666 L 237433.8892558255,1924679.2132596925 L 237431.94942822598,1924678.050571774 L 237430.78674030755,1924676.1107441746 L 237429.32526133407,1924674.140167896 L 237427.67766952966,1924672.3223304704 L 237425.8598321041,1924670.674738666 L 237423.8892558255,1924669.2132596925 L 237421.94942822598,1924668.050571774 L 237420.78674030755,1924666.1107441746 L 237419.32526133407,1924664.140167896 L 237417.67766952966,1924662.3223304704 L 237415.8598321041,1924660.674738666 L 237413.8892558255,1924659.2132596925 L 237411.94942822598,1924658.050571774 L 237410.78674030755,1924656.1107441746 L 237409.32526133407,1924654.140167896 L 237407.67766952966,1924652.3223304704 L 237405.8598321041,1924650.674738666 L 237403.8892558255,1924649.2132596925 L 237401.78491842066,1924647.9519683912 L 237399.56708580913,1924646.9030116873 L 237397.25711693137,1924646.0764916067 L 237394.8772580504,1924645.48036799 L 237392.45042850825,1924645.1203818333 L 237390.0,1924645.0 L 237389.96295628374,1924645.0 L 237389.32526133407,1924644.140167896 L 237387.67766952966,1924642.3223304704 L 237385.8598321041,1924640.674738666 L 237383.8892558255,1924639.2132596925 L 237381.78491842066,1924637.9519683912 L 237379.56708580913,1924636.9030116873 L 237377.25711693137,1924636.0764916067 L 237374.8772580504,1924635.48036799 L 237372.45042850825,1924635.1203818333 L 237370.0,1924635.0 L 237369.96295628374,1924635.0 L 237369.32526133407,1924634.140167896 L 237367.67766952966,1924632.3223304704 L 237365.8598321041,1924630.674738666 L 237363.8892558255,1924629.2132596925 L 237361.78491842066,1924627.9519683912 L 237359.56708580913,1924626.9030116873 L 237357.25711693137,1924626.0764916067 L 237354.8772580504,1924625.48036799 L 237352.45042850825,1924625.1203818333 L 237350.0,1924625.0 L 237349.96295628374,1924625.0 L 237349.32526133407,1924624.140167896 L 237347.67766952966,1924622.3223304704 L 237345.8598321041,1924620.674738666 L 237343.8892558255,1924619.2132596925 L 237341.78491842066,1924617.9519683912 L 237339.56708580913,1924616.9030116873 L 237337.25711693137,1924616.0764916067 L 237334.8772580504,1924615.48036799 L 237332.45042850825,1924615.1203818333 L 237330.0,1924615.0 L 237220.0,1924615.0 L 237217.54957149175,1924615.1203818333 L 237215.1227419496,1924615.48036799 L 237212.74288306863,1924616.0764916067 L 237210.43291419087,1924616.9030116873 L 237208.21508157934,1924617.9519683912 L 237206.1107441745,1924619.2132596925 L 237204.1401678959,1924620.674738666 L 237202.32233047034,1924622.3223304704 L 237200.67473866593,1924624.140167896 L 237200.03704371626,1924625.0 L 237200.0,1924625.0 L 237197.54957149175,1924625.1203818333 L 237195.1227419496,1924625.48036799 L 237192.74288306863,1924626.0764916067 L 237190.43291419087,1924626.9030116873 L 237188.21508157934,1924627.9519683912 L 237186.1107441745,1924629.2132596925 L 237184.1401678959,1924630.674738666 L 237182.32233047034,1924632.3223304704 L 237180.67473866593,1924634.140167896 L 237180.03704371626,1924635.0 L 237180.0,1924635.0 L 237177.54957149175,1924635.1203818333 L 237175.1227419496,1924635.48036799 L 237172.74288306863,1924636.0764916067 L 237170.43291419087,1924636.9030116873 L 237168.21508157934,1924637.9519683912 L 237166.1107441745,1924639.2132596925 L 237164.1401678959,1924640.674738666 L 237162.32233047034,1924642.3223304704 L 237160.67473866593,1924644.140167896 L 237159.21325969245,1924646.1107441746 L 237158.05057177402,1924648.050571774 L 237156.1107441745,1924649.2132596925 L 237154.1401678959,1924650.674738666 L 237152.32233047034,1924652.3223304704 L 237150.67473866593,1924654.140167896 L 237150.03704371626,1924655.0 L 237150.0,1924655.0 L 237147.54957149175,1924655.1203818333 L 237145.1227419496,1924655.48036799 L 237142.74288306863,1924656.0764916067 L 237140.43291419087,1924656.9030116873 L 237138.21508157934,1924657.9519683912 L 237136.1107441745,1924659.2132596925 L 237134.1401678959,1924660.674738666 L 237132.32233047034,1924662.3223304704 L 237130.67473866593,1924664.140167896 L 237129.21325969245,1924666.1107441746 L 237128.05057177402,1924668.050571774 L 237126.1107441745,1924669.2132596925 L 237124.1401678959,1924670.674738666 L 237122.32233047034,1924672.3223304704 L 237120.67473866593,1924674.140167896 L 237119.21325969245,1924676.1107441746 L 237117.95196839128,1924678.2150815793 L 237116.90301168722,1924680.432914191 L 237116.07649160668,1924682.7428830687 L 237115.48036798992,1924685.1227419495 L 237115.1203818332,1924687.5495714918 L 237115.0,1924690.0 L 237115.0,1924690.0370437163 L 237114.1401678959,1924690.674738666 L 237112.32233047034,1924692.3223304704 L 237110.67473866593,1924694.140167896 L 237109.21325969245,1924696.1107441746 L 237108.05057177402,1924698.050571774 L 237106.1107441745,1924699.2132596925 L 237104.1401678959,1924700.674738666 L 237102.32233047034,1924702.3223304704 L 237100.67473866593,1924704.140167896 L 237099.21325969245,1924706.1107441746 L 237097.95196839128,1924708.2150815793 L 237096.90301168722,1924710.432914191 L 237096.07649160668,1924712.7428830687 L 237095.48036798992,1924715.1227419495 L 237095.1203818332,1924717.5495714918 L 237095.0,1924720.0 L 237095.0,1924720.0370437163 L 237094.1401678959,1924720.674738666 L 237092.32233047034,1924722.3223304704 L 237090.67473866593,1924724.140167896 L 237089.21325969245,1924726.1107441746 L 237087.95196839128,1924728.2150815793 L 237086.90301168722,1924730.432914191 L 237086.07649160668,1924732.7428830687 L 237085.48036798992,1924735.1227419495 L 237085.1203818332,1924737.5495714918 L 237085.0,1924740.0 L 237085.0,1924740.0370437163 z\" /></g></svg>"
],
"text/plain": [
"<shapely.geometry.polygon.Polygon at 0x121fd87b8>"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aois.sample(1).iloc[0].geometry"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n",
"\n",
"#### SET CRS"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"aue_src,aue_im,aue_p=image_data('aue.tif',src=True)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"aois=aois.to_crs(aue_p['crs'])"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"300\" height=\"300\" viewBox=\"233458.60000000006 1926028.5999999999 442.80000000004657 432.80000000004657\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,3852490.0)\"><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"2.9520000000003104\" opacity=\"0.6\" d=\"M 233484.99999999965,1926190.0370437158 L 233484.14016789623,1926190.6747386658 L 233482.32233047055,1926192.3223304702 L 233480.67473866633,1926194.1401678957 L 233479.2132596923,1926196.110744175 L 233477.95196839125,1926198.215081579 L 233476.90301168704,1926200.432914191 L 233476.076491607,1926202.7428830687 L 233475.48036798934,1926205.1227419495 L 233475.12038183323,1926207.5495714922 L 233475.00000000058,1926209.9999999995 L 233475.00000000006,1926279.9999999998 L 233475.12038183253,1926282.4504285087 L 233475.4803679897,1926284.87725805 L 233476.07649160665,1926287.2571169303 L 233476.90301168704,1926289.567085809 L 233477.95196839096,1926291.7849184207 L 233479.2132596927,1926293.8892558254 L 233480.67473866552,1926295.859832104 L 233482.3223304699,1926297.67766953 L 233484.14016789565,1926299.325261334 L 233484.99999999965,1926299.9629562837 L 233484.99999999965,1926319.9999999995 L 233485.1203818338,1926322.4504285082 L 233485.4803679895,1926324.87725805 L 233486.07649160642,1926327.2571169315 L 233486.90301168774,1926329.5670858088 L 233487.95196839195,1926331.7849184205 L 233489.213259693,1926333.8892558252 L 233490.67473866598,1926335.8598321036 L 233492.32233047066,1926337.6776695293 L 233494.14016789576,1926339.3252613333 L 233494.99999999977,1926339.9629562835 L 233495.00000000047,1926339.9999999995 L 233495.1203818333,1926342.4504285078 L 233495.48036798934,1926344.8772580507 L 233496.0764916062,1926347.2571169308 L 233496.9030116868,1926349.5670858088 L 233497.9519683912,1926351.7849184207 L 233499.2132596919,1926353.8892558252 L 233500.67473866616,1926355.8598321038 L 233502.32233047037,1926357.6776695296 L 233504.14016789582,1926359.325261334 L 233506.1107441744,1926360.7867403082 L 233508.05057177442,1926361.9494282254 L 233509.21325969195,1926363.8892558254 L 233510.67473866593,1926365.8598321038 L 233512.32233047014,1926367.677669529 L 233514.14016789576,1926369.3252613337 L 233516.11074417486,1926370.7867403068 L 233518.05057177407,1926371.9494282259 L 233519.2132596927,1926373.8892558254 L 233520.67473866622,1926375.8598321036 L 233522.3223304703,1926377.67766953 L 233524.14016789617,1926379.325261334 L 233526.1107441747,1926380.7867403072 L 233528.0505717742,1926381.949428226 L 233529.21325969254,1926383.8892558252 L 233530.67473866587,1926385.8598321034 L 233532.3223304699,1926387.6776695293 L 233534.14016789588,1926389.3252613337 L 233536.11074417504,1926390.7867403075 L 233538.0505717736,1926391.9494282259 L 233539.21325969294,1926393.8892558254 L 233540.67473866593,1926395.8598321043 L 233542.3223304699,1926397.6776695296 L 233544.14016789617,1926399.3252613335 L 233546.11074417445,1926400.7867403072 L 233548.05057177343,1926401.9494282259 L 233549.21325969254,1926403.8892558254 L 233550.67473866657,1926405.859832104 L 233552.32233047043,1926407.6776695296 L 233554.14016789518,1926409.3252613335 L 233556.11074417428,1926410.7867403075 L 233558.0505717736,1926411.9494282259 L 233559.21325969265,1926413.8892558252 L 233560.67473866616,1926415.8598321038 L 233562.32233046985,1926417.6776695286 L 233564.14016789617,1926419.325261334 L 233566.1107441745,1926420.7867403072 L 233568.21508157894,1926422.0480316086 L 233570.4329141907,1926423.0969883127 L 233572.74288306868,1926423.923508393 L 233575.1227419497,1926424.51963201 L 233577.54957149224,1926424.8796181658 L 233579.99999999994,1926425.0000000005 L 233580.0370437167,1926424.9999999998 L 233580.67473866598,1926425.859832104 L 233582.3223304699,1926427.6776695298 L 233584.1401678963,1926429.3252613342 L 233586.1107441747,1926430.7867403072 L 233588.2150815797,1926432.0480316086 L 233590.4329141908,1926433.0969883124 L 233592.7428830685,1926433.9235083929 L 233595.1227419497,1926434.5196320098 L 233597.54957149184,1926434.879618167 L 233600.0000000003,1926434.9999999998 L 233600.03704371589,1926434.9999999995 L 233600.67473866558,1926435.8598321038 L 233602.32233047095,1926437.6776695296 L 233604.14016789617,1926439.3252613335 L 233606.11074417457,1926440.7867403075 L 233608.21508157888,1926442.0480316083 L 233610.43291419098,1926443.0969883127 L 233612.7428830684,1926443.923508393 L 233615.12274194934,1926444.5196320096 L 233617.54957149166,1926444.879618166 L 233620.00000000012,1926444.9999999995 L 233740.00000000064,1926445.0 L 233742.45042850834,1926444.8796181672 L 233744.87725805014,1926444.5196320103 L 233747.25711693196,1926443.9235083929 L 233749.56708580948,1926443.0969883127 L 233751.78491842112,1926442.0480316083 L 233753.88925582578,1926440.7867403075 L 233755.85983210424,1926439.3252613342 L 233757.67766952928,1926437.6776695293 L 233759.3252613335,1926435.8598321034 L 233759.96295628411,1926434.9999999998 L 233760.00000000047,1926434.9999999998 L 233762.45042850857,1926434.8796181667 L 233764.87725805066,1926434.5196320098 L 233767.25711693178,1926433.9235083926 L 233769.56708580884,1926433.0969883124 L 233771.78491842072,1926432.0480316086 L 233773.88925582607,1926430.7867403065 L 233775.85983210377,1926429.3252613337 L 233777.6776695294,1926427.677669529 L 233779.3252613336,1926425.8598321036 L 233779.9629562833,1926424.9999999998 L 233779.99999999983,1926425.0000000005 L 233782.4504285084,1926424.879618167 L 233784.87725805043,1926424.5196320103 L 233787.25711693085,1926423.9235083936 L 233789.56708580878,1926423.0969883127 L 233791.784918421,1926422.0480316088 L 233793.8892558259,1926420.7867403072 L 233795.8598321039,1926419.3252613337 L 233797.67766953033,1926417.677669529 L 233799.32526133454,1926415.8598321036 L 233800.7867403073,1926413.8892558252 L 233801.94942822604,1926411.9494282259 L 233803.88925582502,1926410.786740307 L 233805.8598321036,1926409.325261334 L 233807.67766953015,1926407.6776695296 L 233809.32526133425,1926405.8598321038 L 233810.78674030764,1926403.8892558245 L 233811.94942822598,1926401.9494282259 L 233813.88925582537,1926400.7867403077 L 233815.8598321044,1926399.3252613335 L 233817.67766952963,1926397.677669529 L 233819.3252613336,1926395.859832104 L 233820.78674030775,1926393.889255825 L 233821.94942822552,1926391.9494282259 L 233823.88925582537,1926390.786740308 L 233825.8598321047,1926389.3252613337 L 233827.67766953015,1926387.6776695293 L 233829.32526133402,1926385.8598321034 L 233830.78674030746,1926383.8892558252 L 233831.94942822627,1926381.949428226 L 233833.88925582508,1926380.7867403072 L 233835.85983210482,1926379.3252613342 L 233837.67766953039,1926377.677669529 L 233839.32526133396,1926375.8598321043 L 233840.78674030805,1926373.8892558245 L 233841.94942822633,1926371.9494282263 L 233843.88925582566,1926370.7867403068 L 233845.8598321043,1926369.3252613337 L 233847.67766953004,1926367.6776695293 L 233849.3252613335,1926365.8598321038 L 233850.78674030706,1926363.8892558254 L 233852.04803160933,1926361.7849184205 L 233853.09698831278,1926359.5670858081 L 233853.92350839335,1926357.2571169313 L 233854.5196320102,1926354.877258051 L 233854.8796181663,1926352.4504285082 L 233854.99999999977,1926350.0 L 233855.00000000052,1926349.9629562832 L 233855.85983210447,1926349.3252613335 L 233857.6776695298,1926347.6776695296 L 233859.3252613343,1926345.8598321034 L 233860.7867403074,1926343.8892558254 L 233862.04803160887,1926341.7849184202 L 233863.09698831255,1926339.567085809 L 233863.92350839294,1926337.2571169313 L 233864.51963200944,1926334.8772580505 L 233864.87961816665,1926332.4504285082 L 233865.00000000047,1926329.9999999998 L 233864.99999999965,1926329.9629562842 L 233865.8598321043,1926329.3252613342 L 233867.67766952928,1926327.6776695293 L 233869.3252613346,1926325.8598321031 L 233870.7867403074,1926323.8892558247 L 233872.04803160927,1926321.7849184212 L 233873.09698831296,1926319.5670858088 L 233873.9235083933,1926317.2571169315 L 233874.51963200944,1926314.8772580507 L 233874.87961816625,1926312.4504285075 L 233875.00000000064,1926309.9999999998 L 233874.9999999997,1926299.9629562837 L 233875.85983210453,1926299.325261334 L 233877.67766952992,1926297.6776695296 L 233879.32526133466,1926295.8598321045 L 233880.78674030735,1926293.8892558252 L 233882.04803160892,1926291.7849184207 L 233883.0969883129,1926289.567085809 L 233883.9235083927,1926287.2571169306 L 233884.51963201055,1926284.8772580503 L 233884.87961816642,1926282.450428508 L 233885.0,1926279.9999999995 L 233885.00000000012,1926210.0 L 233884.87961816648,1926207.5495714918 L 233884.5196320095,1926205.1227419495 L 233883.9235083937,1926202.7428830687 L 233883.09698831214,1926200.4329141907 L 233882.04803160927,1926198.2150815788 L 233880.78674030758,1926196.1107441746 L 233879.32526133355,1926194.1401678957 L 233877.6776695298,1926192.3223304702 L 233875.85983210336,1926190.6747386658 L 233875.0,1926190.037043716 L 233874.99999999988,1926179.9999999995 L 233874.879618167,1926177.5495714918 L 233874.51963201084,1926175.122741949 L 233873.92350839335,1926172.7428830687 L 233873.09698831238,1926170.4329141907 L 233872.0480316091,1926168.2150815793 L 233870.78674030735,1926166.1107441746 L 233869.32526133425,1926164.1401678957 L 233867.6776695298,1926162.3223304702 L 233865.85983210366,1926160.6747386653 L 233864.99999999948,1926160.037043716 L 233864.99999999948,1926160.0000000005 L 233864.87961816625,1926157.5495714915 L 233864.51963200985,1926155.1227419495 L 233863.92350839346,1926152.7428830685 L 233863.09698831296,1926150.4329141912 L 233862.04803160834,1926148.215081579 L 233860.7867403074,1926146.1107441746 L 233859.32526133407,1926144.1401678957 L 233857.67766952928,1926142.3223304707 L 233855.8598321036,1926140.6747386663 L 233854.99999999924,1926140.0370437165 L 233855.00000000058,1926139.999999999 L 233854.8796181669,1926137.5495714922 L 233854.5196320106,1926135.1227419493 L 233853.92350839358,1926132.742883069 L 233853.09698831238,1926130.4329141905 L 233852.04803160916,1926128.2150815788 L 233850.78674030764,1926126.1107441743 L 233849.32526133442,1926124.1401678955 L 233847.67766953044,1926122.3223304702 L 233845.85983210395,1926120.6747386656 L 233843.88925582578,1926119.213259693 L 233841.9494282258,1926118.050571774 L 233840.78674030822,1926116.1107441743 L 233839.32526133483,1926114.1401678957 L 233837.67766952957,1926112.3223304704 L 233835.85983210348,1926110.6747386658 L 233833.8892558249,1926109.2132596923 L 233831.9494282257,1926108.0505717732 L 233830.786740308,1926106.1107441746 L 233829.32526133436,1926104.1401678966 L 233827.67766952934,1926102.3223304704 L 233825.8598321037,1926100.6747386658 L 233823.88925582613,1926099.2132596923 L 233821.94942822622,1926098.050571774 L 233820.7867403071,1926096.1107441743 L 233819.3252613347,1926094.1401678955 L 233817.67766952992,1926092.3223304702 L 233815.8598321047,1926090.674738666 L 233813.88925582526,1926089.213259692 L 233811.94942822616,1926088.0505717737 L 233810.78674030694,1926086.110744175 L 233809.32526133454,1926084.1401678957 L 233807.67766952992,1926082.3223304702 L 233805.85983210366,1926080.6747386658 L 233803.88925582526,1926079.2132596923 L 233801.78491842007,1926077.9519683907 L 233799.56708580867,1926076.9030116876 L 233797.2571169315,1926076.0764916067 L 233794.87725805002,1926075.48036799 L 233792.45042850857,1926075.120381833 L 233789.99999999994,1926074.9999999998 L 233789.96295628388,1926074.9999999998 L 233789.3252613336,1926074.140167896 L 233787.6776695298,1926072.3223304707 L 233785.85983210453,1926070.674738666 L 233783.88925582543,1926069.2132596918 L 233781.94942822616,1926068.0505717741 L 233780.78674030735,1926066.1107441743 L 233779.3252613346,1926064.1401678957 L 233777.6776695297,1926062.3223304702 L 233775.85983210348,1926060.6747386658 L 233773.88925582537,1926059.2132596928 L 233771.7849184206,1926057.9519683912 L 233769.56708580954,1926056.9030116869 L 233767.25711693172,1926056.076491606 L 233764.8772580505,1926055.4803679902 L 233762.4504285081,1926055.1203818326 L 233760.00000000047,1926054.9999999995 L 233749.9629562833,1926055.0000000002 L 233749.3252613346,1926054.140167896 L 233747.67766952963,1926052.322330471 L 233745.85983210453,1926050.6747386658 L 233743.88925582555,1926049.213259692 L 233741.7849184213,1926047.951968391 L 233739.56708580902,1926046.9030116876 L 233737.25711693167,1926046.0764916062 L 233734.8772580505,1926045.4803679897 L 233732.45042850758,1926045.1203818333 L 233730.00000000064,1926044.9999999998 L 233629.99999999988,1926045.0 L 233627.54957149219,1926045.1203818333 L 233625.12274194945,1926045.4803679895 L 233622.74288306845,1926046.076491607 L 233620.4329141915,1926046.903011687 L 233618.21508157928,1926047.9519683914 L 233616.1107441741,1926049.2132596923 L 233614.1401678956,1926050.6747386658 L 233612.32233046996,1926052.3223304702 L 233610.67473866604,1926054.1401678964 L 233610.0370437163,1926054.9999999995 L 233599.99999999977,1926055.0000000002 L 233597.5495714919,1926055.120381833 L 233595.1227419491,1926055.48036799 L 233592.74288306886,1926056.076491606 L 233590.4329141908,1926056.9030116869 L 233588.21508157952,1926057.9519683907 L 233586.11074417393,1926059.213259692 L 233584.14016789658,1926060.6747386658 L 233582.3223304699,1926062.3223304702 L 233580.67473866628,1926064.1401678957 L 233579.213259693,1926066.1107441743 L 233578.05057177477,1926068.0505717734 L 233576.1107441752,1926069.2132596923 L 233574.14016789652,1926070.674738666 L 233572.3223304709,1926072.32233047 L 233570.6747386654,1926074.1401678955 L 233570.03704371577,1926074.9999999998 L 233570.0000000003,1926075.0000000002 L 233567.54957149236,1926075.1203818333 L 233565.12274194986,1926075.4803679902 L 233562.7428830691,1926076.0764916067 L 233560.43291419034,1926076.9030116869 L 233558.21508157952,1926077.9519683907 L 233556.1107441748,1926079.2132596923 L 233554.14016789582,1926080.6747386663 L 233552.32233047043,1926082.322330471 L 233550.67473866564,1926084.1401678964 L 233549.213259693,1926086.1107441746 L 233548.0505717736,1926088.0505717737 L 233546.11074417474,1926089.213259692 L 233544.14016789582,1926090.6747386656 L 233542.32233046996,1926092.3223304702 L 233540.67473866616,1926094.1401678957 L 233539.21325969265,1926096.1107441743 L 233538.05057177407,1926098.0505717741 L 233536.11074417492,1926099.2132596923 L 233534.14016789617,1926100.6747386653 L 233532.32233047043,1926102.3223304704 L 233530.67473866598,1926104.1401678962 L 233529.2132596929,1926106.1107441746 L 233528.05057177367,1926108.0505717732 L 233526.11074417457,1926109.213259692 L 233524.14016789582,1926110.6747386658 L 233522.32233046973,1926112.3223304702 L 233520.67473866628,1926114.1401678957 L 233519.2132596923,1926116.1107441743 L 233518.05057177367,1926118.0505717734 L 233516.11074417474,1926119.2132596925 L 233514.1401678961,1926120.674738666 L 233512.32233046967,1926122.3223304707 L 233510.67473866587,1926124.140167896 L 233509.21325969236,1926126.1107441736 L 233507.9519683919,1926128.2150815793 L 233506.90301168663,1926130.432914191 L 233506.07649160648,1926132.7428830683 L 233505.48036798963,1926135.1227419488 L 233505.1203818337,1926137.5495714915 L 233504.99999999948,1926140.0000000005 L 233504.99999999942,1926140.0370437158 L 233504.1401678964,1926140.6747386658 L 233502.32233047095,1926142.3223304702 L 233500.67473866662,1926144.1401678957 L 233499.21325969265,1926146.1107441743 L 233497.95196839125,1926148.215081579 L 233496.90301168745,1926150.4329141905 L 233496.07649160724,1926152.7428830687 L 233495.48036799044,1926155.1227419495 L 233495.1203818331,1926157.549571491 L 233494.9999999997,1926160.0 L 233495.00000000064,1926160.0370437163 L 233494.14016789553,1926160.6747386658 L 233492.32233047084,1926162.3223304704 L 233490.67473866598,1926164.140167895 L 233489.21325969294,1926166.1107441748 L 233487.95196839195,1926168.2150815793 L 233486.90301168704,1926170.432914191 L 233486.07649160695,1926172.7428830683 L 233485.48036799004,1926175.1227419495 L 233485.1203818326,1926177.5495714913 L 233485.00000000012,1926179.9999999995 L 233484.99999999965,1926190.0370437158 z\" /></g></svg>"
],
"text/plain": [
"<shapely.geometry.polygon.Polygon at 0x1220352e8>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"aois.sample(1).iloc[0].geometry"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n",
"\n",
"#### GET GEOMS"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"aois_geojson=json.loads(aois.to_json())\n",
"aois_geoms=[[f['geometry']] for f in aois_geojson['features']]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n",
"\n",
"#### CUT OUT AOIS"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"aois_ims=[cut_img(aue_src,g) for g in aois_geoms]"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"test_im,test_profile=choice(aois_ims)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"IMAGE SHAPE: (1, 42, 41)\n",
"{'affine': Affine(10.0, 0.0, 235720.0,\n",
" 0.0, -10.0, 1916740.0),\n",
" 'count': 1,\n",
" 'crs': CRS({'init': 'epsg:32644'}),\n",
" 'driver': 'GTiff',\n",
" 'dtype': 'uint8',\n",
" 'height': 41,\n",
" 'interleave': 'band',\n",
" 'nodata': 255.0,\n",
" 'tiled': False,\n",
" 'width': 42}\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAfoAAAEWCAYAAACOk1WwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAG4FJREFUeJzt3X+UX3V95/HnS4KGXxIggaVJ2mDJiVpafoS6dN3aiWiPUGtwW7baVlKkTXeXWqnl1Ei7q3uqPXoOW6prFxvFGtTVpaglpSxKo1PXswcsUeoPQpeUUpgmJRj5NWDkR9/7x/fOcQyT5DvJ3PnO987zcc733Hs/33vv9z2fM2decz/3fu9NVSFJkrrpOYMuQJIktceglySpwwx6SZI6zKCXJKnDDHpJkjrMoJckqcMMeqljklTzWjHoWiQNnkEvDZEk9zYhfsGktpGm7eGm6b3N69E+9veRZtt3tFOxpEFbMOgCJM2sqrps0DVMJcnhVfXUoOuQ5huP6KWO2XvoPsllSf4+yZ4kDyYZTbIqyUeAdc1mb2+2+UizzY8luTnJt5pt/iLJqkmf8eIktyZ5IslfJvnvzfZ/3rw/Mcpwb5J3JNkNbExycpIvNvt9qtn3x5IsarZbMan+NyX55yQPJHlDkp9Lcl+zzYZZ61BpyHlELw2nS5KMNPPL9rVSklOBq4BvAR8Bng+cA5wMfA54CfAi4DbgVuDLSU4G/hpYBPwl8Fzg1cDZSV4MPAZsBn4Y2Ap8B/iP+yjhh4BfBT4F3AUcAxwB/EWz3SuAXwLGgf+w17aXNXW9Bvgg8BCwBfhF4A+SfLqq/t8+e0gSYNBLw+rVfa53eDPdAXwauLOqxpIcVlXPJPlpekF/c1W9AyDJ79AL+dGqenXT9lXgDOBC4E56IT8O/FRVPZ7kBnqBvLcCRqpq+0RDkvXAK4ETgW8CK4GXT7HtOnr/fHwHeB7w+1X1P5K8CDgLOB0w6KUDcOheGk6vrapUVYA1+1qpqrYBbweWAp8F7k9yF71w35cVzXTbpLa7mukPNfsCuL+qHm/m79zHvh7YK+RfD3wFeA/w28DERYVLpth2W1U9DUx8xt8108ea6VH7+RkkNQx6qcOSHAa8q6oW0wvp9wCrgN9qVnmmmU7+W3BvM33hpLaJ8/P/CPxTM78syRFTrDvZd/da/oVm+iF6R+kTy5li22cOsCypDw7dS922HLgtyReBXcBLm/aJr+Ld30x/OcmxwJ8DHwOuANYk2UzvHP2ZwAPA9fS+trcdOBUYTXIfUw/bT+WBZnoecDVw/kH+XJL65BG91G2PAl+mF/C/BvwA8Engnc37HwT+L73h+N8EVlfVDnqnAz7XbHc2vYvy1lTVt5vh9LX0LpT7UeBI4Jpmf3sfwe/tvwJfAE4AVgN/cOg/oqT9SVUNugZJQybJsVX1yKTlzwI/Dbyzqv7z4CqTtDeDXtK0JbmK3pX3t9O7Gv+19C6a+9Gq+odB1ibp+zl0L+lg/C3wI8DvAj8B3AS8zJCX5h6P6CVJ6jCP6CVJ6rCh/nrdokWL6tRTTx10GZ32+OOPc9RR3pekbfZz++zj9tnH7du6deu3qmqqG0zt01AH/UknncTtt98+6DI6bXR0lJGRkUGX0Xn2c/vs4/bZx+1L8o/T3cahe0mSOsyglySpwwx6SZI6bKjP0UuSNF1PPfUUY2Nj7NmzZ9Cl7NPChQtZtmwZhx9++IFXPgCDXpI0r4yNjXHMMcewYsUKkqkenDhYVcXu3bsZGxvjlFNOOeT9OXQvSZpX9uzZwwknnDAnQx4gCSeccMKMjTgY9JKkeWeuhvyEmazPoJckqcMMeknS/JbM7KsPb3zjGznxxBM57bTTWv7hDHpJkmbdr/zKr3DzzTfPymcZ9JIkzbKXvexlHH/88bPyWQa9JEkd1lrQJ1mV5I5Jr0eTXJbk+CS3JLm7mR7XrJ8k70uyPcnXkpzVVm2SJM0XrQV9Vf1dVZ1RVWcAq4EngM8AG4AtVbUS2NIsA5wHrGxe64Gr26pNkqT5YraG7s8F/r6q/hFYC2xq2jcBFzTza4Frq+dWYFGSk2epPkmSOmm2boH7OuATzfxJVbUToKp2JjmxaV8K3D9pm7GmbefkHSVZT++InyVLljA6Otpi2RofH7ePZ4H93D77uH3D0sfHHnssjz322PcaHn10Zj9g8r734eKLL+ZLX/oSu3fvZunSpVxxxRVcdNFF37fOnj17ZqQ/Ww/6JM8FXgO87UCrTtFWz2qo2ghsBFi1alWNjIwcaonaj9HRUezj9tnP7bOP2zcsfbxt2zaOOeaYgdZw/fXXH3CdhQsXcuaZZx7yZ83G0P15wFeq6oFm+YGJIflmuqtpHwOWT9puGbBjFuqTJKmzZiPoX8/3hu0BNgPrmvl1wA2T2i9qrr4/B3hkYohfkiQdnFaH7pMcCbwS+PVJze8GrktyCXAfcGHTfhNwPrCd3hX6F7dZmyRp/qqqOf1gm6pnnbk+aK0GfVU9AZywV9tuelfh771uAZe2WY8kSQsXLmT37t1z9lG1E8+jX7hw4Yzsb7auupckaU5YtmwZY2NjPPjgg4MuZZ8WLlzIsmXLZmRfBr0kaV45/PDDOeWUUwZdxqzxXveSJHWYQS9JUocZ9JIkdZhBL0lShxn0kiR1mEEvSVKHGfSSJHWYQS9JUocZ9JIkdZhBL0lShxn0kiR1mEEvSVKHGfSSJHWYQS9JUocZ9JIkdZhBL0lShxn0kiR1WKtBn2RRkuuT3JVkW5KfSHJ8kluS3N1Mj2vWTZL3Jdme5GtJzmqzNkmS5oO2j+jfC9xcVS8ETge2ARuALVW1EtjSLAOcB6xsXuuBq1uuTZKkzmst6JM8H3gZcA1AVT1ZVQ8Da4FNzWqbgAua+bXAtdVzK7Aoyclt1SdJ0nywoMV9vwB4EPjTJKcDW4E3AydV1U6AqtqZ5MRm/aXA/ZO2H2vadk7eaZL19I74WbJkCaOjoy3+CBofH7ePZ4H93D77uH328dzUZtAvAM4C3lRVtyV5L98bpp9KpmirZzVUbQQ2AqxatapGRkZmoFTty+joKPZx++zn9tnH7bOP56Y2z9GPAWNVdVuzfD294H9gYki+me6atP7ySdsvA3a0WJ8kSZ3XWtBX1T8D9ydZ1TSdC9wJbAbWNW3rgBua+c3ARc3V9+cAj0wM8UuSpIPT5tA9wJuAjyd5LnAPcDG9fy6uS3IJcB9wYbPuTcD5wHbgiWZdSZJ0CFoN+qq6Azh7irfOnWLdAi5tsx5JkuYb74wnSVKHGfSSJHWYQS9JUocZ9JIkdZhBL0lShxn0kiR1mEEvSVKHGfSSJHWYQS9JUocZ9JIkdZhBL0lShxn0kiR1mEEvSVKHGfSSJHWYQS9JUocZ9JIkdZhBL0lShxn0kiR1mEEvSVKHGfSSJHVYq0Gf5N4kX09yR5Lbm7bjk9yS5O5melzTniTvS7I9ydeSnNVmbZIkzQezcUS/pqrOqKqzm+UNwJaqWglsaZYBzgNWNq/1wNWzUJskSZ02iKH7tcCmZn4TcMGk9mur51ZgUZKTB1CfJEmdsaDl/RfwuSQF/ElVbQROqqqdAFW1M8mJzbpLgfsnbTvWtO2cvMMk6+kd8bNkyRJGR0fb/QnmufHxcft4FtjP7bOP22cfz01tB/1Lq2pHE+a3JLlrP+tmirZ6VkPvn4WNAKtWraqRkZEZKVRTGx0dxT5un/3cPvu4ffbx3NTq0H1V7Wimu4DPAC8BHpgYkm+mu5rVx4DlkzZfBuxosz5JkrqutaBPclSSYybmgZ8GvgFsBtY1q60DbmjmNwMXNVffnwM8MjHEL0mSDk6bQ/cnAZ9JMvE5/7Oqbk7yN8B1SS4B7gMubNa/CTgf2A48AVzcYm2SJM0LrQV9Vd0DnD5F+27g3CnaC7i0rXokSZqPvDOeJEkdZtBLktRhBr0kSR1m0EuS1GEGvSRJHdZX0Cc5re1CJEnSzOv3iP4DSb6c5D8lWdRqRZIkacb09T36qvq3SVYCbwRuT/Jl4E+r6pZWqzuQJ56ATHWL/DmsnnX7fkmSWtP3Ofqquhv4PeCtwE8B70tyV5J/11ZxkiTp0PR7jv7HklwFbANeDvxsVb2omb+qxfokSdIh6PcWuO8HPghcUVXfmWhsHkH7e61UJkmSDlm/QX8+8J2qegYgyXOAhVX1RFV9tLXqJEnSIen3HP1fAUdMWj6yaZMkSXNYv0f0C6tqfGKhqsaTHNlSTdLBG7ZvYYDfxJDUqn6P6B9PctbEQpLVwHf2s74kSZoD+j2ivwz4syQ7muWTgV9opyRJkjRT+r1hzt8keSGwCghwV1U91WplkiTpkPV7RA/w48CKZpszk1BV17ZSlSRJmhF9BX2SjwI/DNwBPNM0F2DQS5I0h/V7RH828OIqLw+WJGmY9HvV/TeAf3UwH5DksCRfTXJjs3xKktuS3J3kfyV5btP+vGZ5e/P+ioP5PEmS9D39Bv1i4M4kn02yeeLV57ZvpneP/AnvAa6qqpXAQ8AlTfslwENVdSq9++e/p8/9S5Kkfeh36P4dB7PzJMuAnwHeBbwlSeg9COcXm1U2Nfu+Glg76XOuB96fJJ4ukCTp4PX79bq/TvJDwMqq+qvmrniH9bHpHwG/AxzTLJ8APFxVTzfLY8DSZn4pcH/zeU8neaRZ/1uTd5hkPbAeYMnixYxeeWU/P8LcMTo66AqmZXx8nNFhqnnYfh8ARkeHr5+HkH3cPvt4bur3qvtfoxeux9O7+n4p8AHg3P1s82pgV1VtTTIy0TzFqtXHe99rqNoIbARYtXx5jVx+eT8/wtwxZAMUo6OjjIyMDLqM/q1ZM+gKpq9q+Pp5CNnH7bOP56Z+h+4vBV4C3AZQVXcnOfEA27wUeE2S84GFwPPpHeEvSrKgOapfBkzcbW8MWA6MJVkAHAt8ezo/jCRJ+n79Xoz33ap6cmKhCeL9HppW1duqallVrQBeB3y+qn4J+ALw881q64AbmvnNzTLN+5/3/LwkSYem36D/6yRXAEckeSXwZ8BfHORnvpXehXnb6Z2Dv6ZpvwY4oWl/C7DhIPcvSZIa/Q7db6D39bevA78O3AR8qN8PqapRYLSZv4feaYC919kDXNjvPiVJ0oH1e9X9vwAfbF6SJGlI9HvV/T8w9RXwL5jxiiRJ0oyZzr3uJyykN8R+/MyXI0mSZlJfF+NV1e5Jr3+qqj+id4c7SZI0h/U7dH/WpMXn0DvCP2Yfq0uSpDmi36H7/zZp/mngXuDfz3g1kiRpRvV71f0Q3ldUkiT1O3T/lv29X1V/ODPlSJKkmTSdq+5/nN5tagF+FvgizdPmJEnS3NRv0C8GzqqqxwCSvAP4s6r61bYKkyRJh67fe93/IPDkpOUngRUzXo0kSZpR/R7RfxT4cpLP0LtD3muBa1urSpIkzYh+r7p/V5L/Dfxk03RxVX21vbIkSdJM6HfoHuBI4NGqei8wluSUlmqSJEkzpK+gT/J2es+Rf1vTdDjwsbaKkiRJM6PfI/rXAq8BHgeoqh14C1xJkua8foP+yaoqmkfVJjmqvZIkSdJM6Tfor0vyJ8CiJL8G/BXwwfbKkiRJM6Hfq+6vTPJK4FFgFfBfquqWViuTJEmH7IBBn+Qw4LNV9Qqg73BPspDebXKf13zO9VX19uZq/U8CxwNfAd5QVU8meR697+avBnYDv1BV907z55EkSZMccOi+qp4Bnkhy7DT3/V3g5VV1OnAG8Kok5wDvAa6qqpXAQ8AlzfqXAA9V1anAVc16kiTpEPR7Z7w9wNeT3EJz5T1AVf3mvjZoLt4bbxYPb14FvBz4xaZ9E/AO4GpgbTMPcD3w/iRp9iNJkg5Cv0H/l81rWpph/63AqcAfA38PPFxVTzerjAFLm/mlNE/Dq6qnkzwCnAB8a7qfK0mSevYb9El+sKruq6pNB7PzZtj/jCSLgM8AL5pqtYmP2897k2taD6wHWLJ4MaNXXnkwpQ3O6OigK5iW8fFxRoep5mH7fQAYHR2+fh5C9nH77OO56UBH9H8OnAWQ5FNV9XMH8yFV9XCSUeAcel/RW9Ac1S8DdjSrjQHL6d1edwFwLPDtKfa1EdgIsGr58hq5/PKDKWlwhuxMxOjoKCMjI4Muo39r1gy6gumrGr5+HkL2cfvs47npQBfjTT7KfsF0dpxkSXMkT5IjgFcA24AvAD/frLYOuKGZ39ws07z/ec/PS5J0aA50RF/7mO/HycCm5jz9c4DrqurGJHcCn0zyTuCrwDXN+tcAH02ynd6R/Oum+XmSJGkvBwr605M8Su/I/ohmnma5qur5+9qwqr4GnDlF+z3AS6Zo3wNc2G/hkiTpwPYb9FV12GwVIkmSZt50nkcvSZKGjEEvSVKHGfSSJHWYQS9JUocZ9JIkdZhBL0lShxn0kiR1mEEvSVKHGfSSJHWYQS9JUocZ9JIkdZhBL0lShxn0kiR1mEEvSVKHGfSSJHWYQS9JUocZ9JIkdZhBL0lShxn0kiR1WGtBn2R5ki8k2Zbkm0ne3LQfn+SWJHc30+Oa9iR5X5LtSb6W5Ky2apMkab5o84j+aeC3q+pFwDnApUleDGwAtlTVSmBLswxwHrCyea0Hrm6xNkmS5oXWgr6qdlbVV5r5x4BtwFJgLbCpWW0TcEEzvxa4tnpuBRYlObmt+iRJmg9SVe1/SLIC+CJwGnBfVS2a9N5DVXVckhuBd1fVl5r2LcBbq+r2vfa1nt4RP0sWL1593YYNDJXVqwddwbSMj49z9NFHD7qM/m3dOugKpm/16uHr5yFkH7fPPm7fmjVrtlbV2dPZZkFbxUxIcjTwKeCyqno0yT5XnaLtWf+FVNVGYCPAquXLa+Tyy2eq1NkxC/9YzaTR0VFGRkYGXUb/1qwZdAXTVzV8/TyE7OP22cdzU6tX3Sc5nF7If7yqPt00PzAxJN9MdzXtY8DySZsvA3a0WZ8kSV3X5lX3Aa4BtlXVH056azOwrplfB9wwqf2i5ur7c4BHqmpnW/VJkjQftDl0/1LgDcDXk9zRtF0BvBu4LsklwH3Ahc17NwHnA9uBJ4CLW6xNkqR5obWgby6q29cJ+XOnWL+AS9uqR5Kk+cg740mS1GEGvSRJHWbQS5LUYQa9JEkdZtBLktRhBr0kSR1m0EuS1GEGvSRJHWbQS5LUYQa9JEkdZtBLktRhBr0kSR1m0EuS1GEGvSRJHWbQS5LUYQa9JEkdZtBLktRhBr0kSR1m0EuS1GEGvSRJHdZa0Cf5cJJdSb4xqe34JLckubuZHte0J8n7kmxP8rUkZ7VVl6R5KIGtW3vTYXhJM6jNI/qPAK/aq20DsKWqVgJbmmWA84CVzWs9cHWLdUmSNG+0FvRV9UXg23s1rwU2NfObgAsmtV9bPbcCi5Kc3FZtkiTNF6mq9naerABurKrTmuWHq2rRpPcfqqrjktwIvLuqvtS0bwHeWlW3T7HP9fSO+lmyePHq6zZs2HuVuW316kFXMC3j4+McffTRgy6jf1u3DrqC6Vu9evj6edhs3cr4smUcPTY26Er6M2R/Jyb4e9y+NWvWbK2qs6ezzYK2ipmmqU5KTfkfSFVtBDYCrFq+vEYuv7zNumZei/9YtWF0dJSRkZFBl9G/NWsGXcH0VQ1fPw+bNWsYvfJKhubvxZD9nZjg7/HcNNtX3T8wMSTfTHc17WPA8knrLQN2zHJtkiR1zmwH/WZgXTO/DrhhUvtFzdX35wCPVNXOWa5NkqTOaW3oPskngBFgcZIx4O3Au4HrklwC3Adc2Kx+E3A+sB14Ari4rbokSZpPWgv6qnr9Pt46d4p1C7i0rVokSZqvvDOeJEkdZtBLktRhBr0kSR1m0EuS1GEGvSRJHWbQS5LUYQa9JEkdZtBLktRhBr0kSR1m0EuS1GEGvSRJHWbQS5LUYQa9JEkdZtBLktRhBr0kSR1m0EuS1GEGvSRJHWbQS5LUYQa9JEkdZtBLktRhcyrok7wqyd8l2Z5kw6DrkSRp2M2ZoE9yGPDHwHnAi4HXJ3nxYKuSJGm4zZmgB14CbK+qe6rqSeCTwNoB1yRJ0lBbMOgCJlkK3D9peQz413uvlGQ9sL5Z/G7gG7NQ28xJBl3BdC0GvjXoIjqt9zthP7ft8suHp4+H7+/EhOHp4+G1arobzKWgn+o3u57VULUR2AiQ5PaqOrvtwuYz+3h22M/ts4/bZx+3L8nt091mLg3djwHLJy0vA3YMqBZJkjphLgX93wArk5yS5LnA64DNA65JkqShNmeG7qvq6SS/AXwWOAz4cFV98wCbbWy/snnPPp4d9nP77OP22cftm3Yfp+pZp8ElSVJHzKWhe0mSNMMMekmSOmxog97b5bYryfIkX0iyLck3k7x50DV1VZLDknw1yY2DrqWLkixKcn2Su5rf558YdE1dlOS3mr8V30jyiSQLB13TsEvy4SS7knxjUtvxSW5JcnczPe5A+xnKoPd2ubPiaeC3q+pFwDnApfZxa94MbBt0ER32XuDmqnohcDr29YxLshT4TeDsqjqN3gXVrxtsVZ3wEeBVe7VtALZU1UpgS7O8X0MZ9Hi73NZV1c6q+koz/xi9P45LB1tV9yRZBvwM8KFB19JFSZ4PvAy4BqCqnqyqhwdbVWctAI5IsgA4Eu+Dcsiq6ovAt/dqXgtsauY3ARccaD/DGvRT3S7XEGpJkhXAmcBtg62kk/4I+B3gXwZdSEe9AHgQ+NPm9MiHkhw16KK6pqr+CbgSuA/YCTxSVZ8bbFWddVJV7YTeARlw4oE2GNag7+t2uTp0SY4GPgVcVlWPDrqeLknyamBXVW0ddC0dtgA4C7i6qs4EHqePoU5NT3OeeC1wCvADwFFJfnmwVWnCsAa9t8udBUkOpxfyH6+qTw+6ng56KfCaJPfSO/308iQfG2xJnTMGjFXVxGjU9fSCXzPrFcA/VNWDVfUU8Gng3wy4pq56IMnJAM1014E2GNag93a5LUsSeuc1t1XVHw66ni6qqrdV1bKqWkHvd/jzVeVR0Ayqqn8G7k8y8cSvc4E7B1hSV90HnJPkyOZvx7l40WNbNgPrmvl1wA0H2mDO3AJ3Og7ydrmanpcCbwC+nuSOpu2KqrppgDVJB+NNwMebg4J7gIsHXE/nVNVtSa4HvkLvGztfxdvhHrIknwBGgMVJxoC3A+8GrktyCb1/sC484H68Ba4kSd01rEP3kiSpDwa9JEkdZtBLktRhBr0kSR1m0EuS1GEGvaR9SvJMkjuap5L9bZK3JHlO895Ikkrys5PWvzHJyMAKlvQsBr2k/flOVZ1RVT8CvBI4n953eSeMAb87kMok9cWgl9SXqtoFrAd+o7n7GcDfAo8keeXgKpO0Pwa9pL5V1T30/m5MfmLWO4HfG0xFkg7EoJc0Xd/39Miq+j8ASX5yMOVI2h+DXlLfkrwAeIZnPzHrXXiuXpqTDHpJfUmyBPgA8P7a6yEZVfU54Djg9EHUJmnfhvLpdZJmzRHN0wsPp/dUso8C+3ps8bvo45GZkmaXT6+TJKnDHLqXJKnDDHpJkjrMoJckqcMMekmSOsyglySpwwx6SZI6zKCXJKnD/j83zdvDpd2urQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 576x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"show_data(test_im,test_profile)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"test_im_crp,test_profile_crp=crop(aue_src,test_im,test_profile)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"IMAGE SHAPE: (1, 41, 41)\n",
"{'affine': Affine(10.0, 0.0, 195690.0,\n",
" 0.0, -10.0, 1963600.0),\n",
" 'count': 1,\n",
" 'crs': CRS({'init': 'epsg:32644'}),\n",
" 'driver': 'GTiff',\n",
" 'dtype': 'uint8',\n",
" 'height': 41,\n",
" 'interleave': 'band',\n",
" 'nodata': 255.0,\n",
" 'tiled': False,\n",
" 'width': 41}\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"show_data(test_im_crp,test_profile_crp)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n",
"\n",
"#### SAVE IMAGES"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"def save_all():\n",
" for i,(im,p) in enumerate(aois_ims):\n",
" im,p=crop(aue_src,im,p)\n",
" image_write(im,f'aoi_{i}',p)\n",
" if not i % 5:\n",
" print(i)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0\n",
"5\n",
"10\n",
"15\n",
"20\n",
"25\n",
"30\n",
"35\n",
"40\n",
"45\n",
"50\n",
"55\n",
"60\n",
"65\n",
"70\n",
"75\n",
"CPU times: user 92.3 ms, sys: 25.9 ms, total: 118 ms\n",
"Wall time: 116 ms\n"
]
}
],
"source": [
"%time save_all()"
]
},
{
"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.7.0"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment