{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import gdal\n", "from pathlib import Path\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "outfile = Path('../Res/test.tif')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "raster = np.arange(20 * 10).reshape(10, 20)\n", "raster.shape" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "ds = gdal.Open(outfile.as_posix())\n", "ds" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "cols = raster.shape[1]\n", "rows = raster.shape[0]\n", "\n", "driver = gdal.GetDriverByName('GTiff')\n", "dst_ds = driver.Create(outfile.as_posix(), cols, rows, 2, gdal.GDT_Byte)\n", "dst_ds.GetRasterBand(1).WriteArray(raster.astype(np.uint8))\n", "dst_ds.GetRasterBand(2).WriteArray(raster.astype(np.uint8))\n", "dst_ds.FlushCache()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import gdal\n", "\n", "gdal.GDT_TypeCount" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "np_to_gdt = {\n", " np.uint8: gdal.GDT_Byte,\n", " np.float32: gdal.GDT_Float32,\n", " np.float64: gdal.GDT_Float64,\n", " np.uint16: gdal.GDT_Int16,\n", " np.uint32: gdal.GDT_Int32\n", " }\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "raster.dtype.type" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "np.double" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "np.savetxt?" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "raster.shape" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "np.rollaxis(dst_ds.GetVirtualMemArray(), 0, 3)[:,:,0] == raster #[:] = np.repeat(raster, 2).reshape(2, rows, cols)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "gdl_data = gdal.Open('/tmp/outfile.tif')\n", "gdl_data.GetMetadata(), gdl_data.RasterCount" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "gdl_data.GetVirtualMemArray()[0,:,:] == gdl_data.GetRasterBand(1).ReadAsArray()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "gdl_data.GetRasterBand(1).ReadAsArray().shape, gdl_data.GetRasterBand(1).ReadAsArray().dtype" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import sys\n", "from pathlib import Path\n", "import numpy as np\n", "\n", "triskele_path = Path('../triskele/python/')\n", "sys.path.append(str(triskele_path.resolve()))\n", "import importlib\n", "import triskele\n", "\n", "importlib.reload(triskele)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "triskele.read('/tmp/outfile.tif')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "triskele.Triskele" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "gdl = gdal.Open('/tmp/outfile.tif')\n", "gdl.ReadAsArray()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import gdal\n", "\n", "def read(fname):\n", " gdl_data = gdal.Open(str(fname))\n", " #tmp = gdl_data.GetRasterBand(1).ReadAsArray()\n", " return gdl_data.ReadAsArray()\n", " #return np.rollaxis(gdl_data.GetVirtualMemArray(), 0, 3)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "qwe = gdal.Open('test.tif')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "qwe." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "read('/tmp/outfile.tif')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "X = np.arange(20*12*5).reshape(12,20,5)\n", "X.shape" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "triskele.write('../Res/test.tif', X[:,:,0].astype(np.uint8))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "Y = triskele.read('../Res/test.tif')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "Y.shape" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "(X.astype(np.uint8) == Y).all()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "len(X.shape)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "x = X[:,:,0]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "x.shape" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "np.expand_dims(X, 2).shape" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "triskele.write('test.tif', x)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "x.shape" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "data = triskele.read('../Data/phase1_rasters/DEM_C123_3msr/UH17_GEG051_TR.tif')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "t = triskele.Triskele(data, verbose=True)\n", "res = t.filter(area=np.array([10,100,1000]))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "data = np.stack((data, data), axis=2)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "data.shape" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "res.shape, res.dtype" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "triskele.write('ttest.tif', res[:,:,0])" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "triskele.read('ttest.tif').shape" ] } ], "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" } }, "nbformat": 4, "nbformat_minor": 2 }