260 lines
29 KiB
Plaintext
260 lines
29 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 90,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import numpy as np\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"import pandas as pd\n",
|
|
"from matplotlib import path\n",
|
|
"import matplotlib.patches as patches\n",
|
|
"from skimage import draw\n",
|
|
"import scipy.ndimage as ndimage\n",
|
|
"import Utils\n",
|
|
"import georasters as gr\n",
|
|
"import cv2\n",
|
|
"from Utils import doubleMADsfromMedian\n",
|
|
"from skimage.transform import resize\n",
|
|
"import pickle\n",
|
|
"import simplekml\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Parameters"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 91,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"path_T = \"Pampa/THERMAL_06.tif\"\n",
|
|
"path_String = \"Pampa/BP-B-5.tif\"\n",
|
|
"ZonaPV = 'BP-B-5'\n",
|
|
"path_kml_panel = 'Pampa/KML/Paneles_' + ZonaPV +'_classifier.kml'\n",
|
|
"path_dict = 'Pampa/KML/Mesa_' + ZonaPV + '.pickle'\n",
|
|
"\n",
|
|
"GR_String = gr.from_file(path_String)\n",
|
|
"GR_T = gr.from_file(path_T)\n",
|
|
"geot_T = GR_T.geot\n",
|
|
"img_height, img_width = 128,128\n",
|
|
"## Load List in coordinate latitud and longitude ###\n",
|
|
"with open(path_dict, \"rb\") as fp:\n",
|
|
" L_strings_coord = pickle.load(fp)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Classifier each panel"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 92,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"1\n"
|
|
]
|
|
},
|
|
{
|
|
"ename": "NameError",
|
|
"evalue": "name 'classifier' is not defined",
|
|
"output_type": "error",
|
|
"traceback": [
|
|
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
|
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
|
|
"\u001b[0;32m<ipython-input-92-11368de2a81e>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 14\u001b[0m \u001b[0mIm\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mIm\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 15\u001b[0m \u001b[0mIm\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mIm\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 16\u001b[0;31m \u001b[0mpanel\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'status'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpanel\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'prob'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mclassifier\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mIm\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 17\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 18\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'problem with coords panel: '\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstring_key\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'_'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpanel_key\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
|
|
"\u001b[0;31mNameError\u001b[0m: name 'classifier' is not defined"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"\n",
|
|
"epsilon = 0\n",
|
|
"matrix_expand_bounds = [[-epsilon, -epsilon],[+epsilon, -epsilon], [+epsilon, +epsilon], [-epsilon, +epsilon]]\n",
|
|
"\n",
|
|
"for string_key in ['1', '20']:# L_strings_coord.keys():\n",
|
|
" print(string_key)\n",
|
|
" string = L_strings_coord[string_key]\n",
|
|
" for panel_key in string['panels'].keys():\n",
|
|
" panel = string['panels'][panel_key]\n",
|
|
" Points = Utils.gps2pixel(panel['points'], geot_T) + matrix_expand_bounds\n",
|
|
" \n",
|
|
" if not GR_T.raster.data[0,Points[0][1] : Points[2][1], Points[0][0]: Points[2][0]].size == 0:\n",
|
|
" Im = np.zeros((img_height, img_width, 3))\n",
|
|
" Im[:,:,0] = cv2.resize(GR_T.raster.data[0,Points[0][1] : Points[2][1], Points[0][0]: Points[2][0]], (img_width, img_height))\n",
|
|
" Im[:,:,1] = Im[:,:,0].copy()\n",
|
|
" Im[:,:,2] = Im[:,:,0].copy()\n",
|
|
" panel['status'], panel['prob'] = classifier(Im)\n",
|
|
" else:\n",
|
|
" print('problem with coords panel: ', string_key, '_', panel_key)\n",
|
|
"\n",
|
|
"plt.figure(figsize=(6, 6))\n",
|
|
"plt.imshow(Im.astype(int))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"panel"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Save KML Panels"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"\n",
|
|
"kml=simplekml.Kml()\n",
|
|
"\n",
|
|
"\n",
|
|
"for string_key in L_strings_coord.keys():\n",
|
|
" \n",
|
|
" string = L_strings_coord[string_key]\n",
|
|
" points = string['points']\n",
|
|
" \n",
|
|
" for panel_key in string['panels'].keys():\n",
|
|
" panel = string['panels'][panel_key]\n",
|
|
" points = panel['points']\n",
|
|
" \n",
|
|
" pmt = kml.newpolygon(outerboundaryis = points)\n",
|
|
" pmt.extendeddata.newdata(name= 'Id integer', value= str(string_key).zfill(3) + '_' + str(panel['id']).zfill(3))\n",
|
|
" pmt.extendeddata.newdata(name= 'Id panel', value= str(panel['id']).zfill(3))\n",
|
|
" pmt.extendeddata.newdata(name='Zona PV', value= ZonaPV)\n",
|
|
" pmt.extendeddata.newdata(name='Cód. Fall', value= 0)\n",
|
|
" pmt.extendeddata.newdata(name= 'Tipo falla', value= panel['status'])\n",
|
|
" pmt.extendeddata.newdata(name= 'Mesa', value= string['id'])\n",
|
|
" \n",
|
|
"kml.save(path_kml_panel)\n",
|
|
"print('Listo')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 95,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<matplotlib.image.AxesImage at 0x7fd0127a2d10>"
|
|
]
|
|
},
|
|
"execution_count": 95,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 432x288 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"plt.imshow(Im.astype(int))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"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.7"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 4
|
|
}
|