Skip to content

Instantly share code, notes, and snippets.

@ocefpaf
Last active March 29, 2017 19:18
Show Gist options
  • Save ocefpaf/53e5be14d58c1b946952a7293f2005cf to your computer and use it in GitHub Desktop.
Save ocefpaf/53e5be14d58c1b946952a7293f2005cf to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {
"collapsed": false,
"trusted": true,
"editable": true,
"deletable": true
},
"cell_type": "code",
"source": "import fiona\n\nshp = fiona.open('zonas_farrapos.shp')",
"execution_count": 1,
"outputs": []
},
{
"metadata": {
"collapsed": false,
"trusted": true,
"editable": true,
"deletable": true
},
"cell_type": "code",
"source": "res = 72\n\n\nwidth = (shp.bounds[2] - shp.bounds[0]) // res\nheight = (shp.bounds[3] - shp.bounds[1]) // res\n\nout_shape = int(height), int(width)\nout_shape",
"execution_count": 2,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "(714, 429)"
},
"metadata": {},
"execution_count": 2
}
]
},
{
"metadata": {
"collapsed": false,
"trusted": true,
"editable": true,
"deletable": true
},
"cell_type": "code",
"source": "from rasterio.transform import from_origin\n\ntransform = from_origin(shp.bounds[0] - res / 2,\n shp.bounds[3] + res / 2, res, res)\ntransform",
"execution_count": 3,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "Affine(72.0, 0.0, 391451.64563056955,\n 0.0, -72.0, 6391938.555971239)"
},
"metadata": {},
"execution_count": 3
}
]
},
{
"metadata": {
"collapsed": false,
"trusted": true,
"editable": true,
"deletable": true
},
"cell_type": "code",
"source": "shapes = [(geometry['geometry'], k) for k, geometry in shp.items()]",
"execution_count": 4,
"outputs": []
},
{
"metadata": {
"collapsed": false,
"trusted": true,
"editable": true,
"deletable": true
},
"cell_type": "code",
"source": "#colors = (255, 0, 50, 0)\n#shapes = [(geometry['geometry'], color) for geometry, color in zip(list(shp.values()), colors)]",
"execution_count": 5,
"outputs": []
},
{
"metadata": {
"collapsed": false,
"trusted": true,
"editable": true,
"deletable": true
},
"cell_type": "code",
"source": "import numpy as np\nimport rasterio\nfrom rasterio.features import rasterize\n\ndtype = rasterio.float64\nfill = np.nan\n\nraster = rasterize(\n shapes,\n out_shape=out_shape,\n fill=fill,\n transform=transform,\n dtype=dtype\n)",
"execution_count": 6,
"outputs": []
},
{
"metadata": {
"collapsed": false,
"trusted": true,
"editable": true,
"deletable": true
},
"cell_type": "code",
"source": "%matplotlib inline\nimport matplotlib.pyplot as plt\n\nfig, ax = plt.subplots(figsize=(9, 9))\nax.imshow(raster)\nax.axis('off');",
"execution_count": 7,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": "<matplotlib.figure.Figure at 0x7f42a4817320>",
"image/png": "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\n"
},
"metadata": {}
}
]
},
{
"metadata": {
"editable": true,
"deletable": true
},
"cell_type": "markdown",
"source": "Salvar o geotiff."
},
{
"metadata": {
"collapsed": false,
"trusted": true,
"editable": true,
"deletable": true
},
"cell_type": "code",
"source": "with rasterio.open(\n 'test.tif', 'w',\n crs=shp.crs,\n driver='GTiff',\n dtype=dtype,\n count=3,\n width=width,\n height=height,\n nodata=fill,\n transform=transform\n) as dst:\n dst.write(raster, indexes=1)",
"execution_count": 8,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Round-trip"
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "with rasterio.open('test.tif') as src:\n r, g, b = src.read()\n print(src.width, src.height)\n print(src.crs)\n",
"execution_count": 9,
"outputs": [
{
"output_type": "stream",
"text": "429 714\nCRS({'init': 'epsg:32721'})\n",
"name": "stdout"
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "total = np.zeros(r.shape)\nfor band in r, g, b:\n total += band\ntotal /= 3",
"execution_count": 10,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Aparentemente a figura \"preta\" é pq não tenho um visualizador corrento.\nA `tif` parece OK mesmo salvando em 3 bandas."
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "plt.imshow(total)",
"execution_count": 11,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "<matplotlib.image.AxesImage at 0x7f429fc60390>"
},
"metadata": {},
"execution_count": 11
},
{
"output_type": "display_data",
"data": {
"text/plain": "<matplotlib.figure.Figure at 0x7f429fd37d68>",
"image/png": "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\nhokxinz5st4fj84ol+78gZkV87/uB3ab2YOS7g/T9wG3AWvD7Xrg4XDfavoJO0ji9fs2e+7ChExy\nzdkdwI3h8XayvIX7wvxvhfSaPZKWS1plZq9PsqIxU9xRK5PJ4NJOTtke14B/lrQ3pCwCXJzLGO4v\nCvMX0hoDxSTHWojpvIVi3+vUR9mKe4OZHZF0EbBL0k8XWbZUWmMVMaMx0ytvbyX2qjsZpcQ1syPh\n/qikJ8iil97IWwBJq4CjYfE8rTGnmORYfM1twDaAmZmZ2kLxYqFfFd5zxOUdlzL5uL8l6YP5Y+CP\ngJ9weipjb1rjp5WxHjhRZ38bU5swKrdcso7zN8138vDupGPvZSruxcATIQ1/GfBPZvZDSc8Dj0na\nCvyCU0F3O8mGwubJhsM+N9EadoSivH7wYThDxQ2pjNf0mf9fwM195htwdyVr11G6WIFHxY+cOUni\n4jpJkrS4Ke+YOZORtLhOd3FxnSRxcZ0kcXGdJHFxnSRxcZ0kcXGdRph0KNPFdZIkWXH94EO3SVZc\np9u4uE6SuLhOkri4TpK4uE6SuLhOkri4TqXsev/xqYQQ+q+nO5VRFHaQvFWNv7u4zlSpqhp7q+BU\nwrQzikuJG4Lrdkj6qaT9kjZIukDSLkkHw/2HwrKS9DVJ85JeknRdvZvgNMm0etpeylbcrwI/NLPf\nJctY2M+pmNG1wO4wDafHjM6SxYw6LaMpYXOG9riSzgN+H/gsgJm9B7wnyWNGO0gsP1tQZufsCuAY\n8PeSrgH2AvfQEzMakhxhcMzoaeK2Pa2xbcQibE6ZVmEZcB3wsJldC/wPp9qCfpSKGTWzbWY2Y2Yz\nK1euLLWyTjPEJi2Uq7iHgcNm9lyY3kEm7kQxo078xChsztCKa2b/CfxS0kfCrJuBV4gkZtSph5il\nhfIHIP4ceETS2cAhsujQJTQUM+pXP9RL7NJC+UTyfcBMn6c8ZrRFpCBsTnJHzrza1kNK0kKC4jrV\nk5q0kOBJNrvef9yrbgWkKGsRr7gdJHVpIcGK64xPG4TNcXE7QJuEzXFxW0wbhc1Jssdt8wdSFW3/\nG3nFbRltFzan1eLmH2IXhs+6ImxOkuIOE7H3Q2zz2G/XhM1JUtxBdO1D7Nr2FklO3H6Vc9IPMLWW\nosvC5iQnLoz3wfVrF1JrKVzYUyQn7iQfXsoffMrrXgfJiVs3sbUNLmx/XNwBFIWZRGIXrx6SPHI2\nbVy++HBxSzLuDqFTDy5uTbi09eLijoDLGA9DxZX0EUn7Crd3JN3b1bTGMvK64PVTJhDkgJmtM7N1\nwEfJshKeoMNpjS5m84zaKtwMvGZmPydLZdwe5m8HPhkeL6Q1mtkeYHmIaOoELvV0GFXcu4Bvh8en\npTUCw9IaW49LOz1Kixvil24Hhn06pdIaJc1KmpM0d+zYsbKrES0u7XQZpeLeBrxgZm+E6TfyFmCc\ntEaPGXUmYRRxt3CqTQBPa1zAq+30KfvjJb8JbAS+V5j9ILBR0sHw3INh/k6yRMd54OvA5ytb24jI\nZXVpm0FZuGLDKyG9Cxxoej2mzArgeNMrMWXKbPNvm9nQ3jGWs8MOmFm/GNPWImnOt3l8/JCvkyQu\nrpMksYi7rekVaADf5gmIYufMcUYllorrOCPRuLiSbpV0IJwGudgP/yWDpMskPRN+sPtlSfeE+a0/\nFVTSUkkvSnoyTF8u6bmwzY+GUweQdE6Yng/PrxnlfRoVV9JS4G/IDidfDWyRdHWT61QRJ4EvmNlV\nwHrg7rBdXTgV9B6yHynP+RLwUNjmt4CtYf5W4C0zuxJ4KCxXHjNr7AZsAJ4qTD8APNDkOtW0nd8n\nO7p4AFgV5q0iG78G+FtgS2H5heVSupGdl7IbuAl4kuyEq+PAst7PG3gK2BAeLwvLqex7Nd0qtP4U\nyPAVeC3wHO0/FfQrwBeB98P0hcDbZnYyTBe3a2Gbw/MnwvKlaFrcUqdApoqkDwDfBe41s3cWW7TP\nvKT+DpI+ARw1s73F2X0WtRLPDaXpQ76t/cFqSWeRSfuImeUnJ7X5h7tvAG6XtAk4FziPrAIvl7Qs\nVNXiduXbfFjSMuB84M2yb9Z0xX0eWBv2PM8mu8LiBw2v08RIEvANYL+ZfbnwVGtPBTWzB8zsUjNb\nQ/Y5Pm1mnwKeATaHxXq3Of9bbA7Ll/+WiaCh3wS8CrwG/EXT61PRNv0e2dfeS8C+cNtE1sPtBg6G\n+wvC8iIbXXkN+HdgpultmHD7bwSeDI+vAH5Mdprr48A5Yf65YXo+PH/FKO/hR86cJGm6VXCcsXBx\nnSRxcZ0kcXGdJHFxnSRxcZ0kcXGdJHFxnST5f5E1+xcI/w8OAAAAAElFTkSuQmCC\n"
},
"metadata": {}
}
]
}
],
"metadata": {
"gist_id": "53e5be14d58c1b946952a7293f2005cf",
"kernelspec": {
"name": "conda-env-IOOS3-py",
"display_name": "Python [conda env:IOOS3]",
"language": "python"
},
"language_info": {
"name": "python",
"version": "3.6.0",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment