2020-11-18 03:05:29 -03:00
{
"cells": [
{
"cell_type": "code",
2020-12-18 16:27:01 -03:00
"execution_count": 1,
2020-11-18 03:05:29 -03:00
"metadata": {},
2020-12-17 18:46:01 -03:00
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/dlsaavedra/anaconda3/envs/new/lib/python3.7/site-packages/pysal/explore/segregation/network/network.py:16: UserWarning: You need pandana and urbanaccess to work with segregation's network module\n",
"You can install them with `pip install urbanaccess pandana` or `conda install -c udst pandana urbanaccess`\n",
" \"You need pandana and urbanaccess to work with segregation's network module\\n\"\n",
"/home/dlsaavedra/anaconda3/envs/new/lib/python3.7/site-packages/pysal/model/spvcm/abstracts.py:10: UserWarning: The `dill` module is required to use the sqlite backend fully.\n",
" from .sqlite import head_to_sql, start_sql\n"
]
}
],
2020-11-18 03:05:29 -03:00
"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",
2020-11-25 16:03:59 -03:00
"import simplekml\n",
"\n",
"from sklearn.preprocessing import LabelEncoder\n",
"from sklearn.svm import SVC\n",
"from sklearn.neighbors import KNeighborsClassifier\n",
"import time\n",
"import tensorflow as tf\n",
"\n",
"\n",
"def classifier(base_model, recognizer, labels, image_input):\n",
" weight, height, dim = base_model.input.shape[1], base_model.input.shape[2], base_model.input.shape[3]\n",
" Im_resize = cv2.resize(image_input, (weight, height), interpolation = cv2.INTER_AREA)\n",
" vec = base_model.predict(tf.keras.backend.expand_dims(Im_resize,0)).flatten()\n",
" prob = recognizer.predict_proba([vec])[0]\n",
" return labels.classes_[np.argmax(prob)], prob[np.argmax(prob)]\n",
" "
2020-11-18 03:05:29 -03:00
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Parameters"
]
},
{
"cell_type": "code",
2020-12-18 16:27:01 -03:00
"execution_count": 8,
2020-11-18 03:05:29 -03:00
"metadata": {},
"outputs": [],
"source": [
2020-12-17 18:46:01 -03:00
"path_T = \"Los_Loros/TH_02_index_thermal_ir.tif\"\n",
2020-12-18 16:27:01 -03:00
"\n",
"\n",
2020-12-17 18:46:01 -03:00
"ZonaPV = 'Test'\n",
"path_kml_panel = 'Los_Loros/KML/Paneles_' + ZonaPV +'.kml'\n",
"path_kml_mesa ='Los_Loros/KML/Mesa_' + ZonaPV +'.kml'\n",
"path_dict = 'Los_Loros/KML/Mesa_' + ZonaPV + '.pickle'\n",
"path_new_dict = 'Los_Loros/KML/Mesa_' + ZonaPV + '_classifier.pickle'\n",
"\n",
2020-11-18 03:05:29 -03:00
"\n",
2020-12-18 16:27:01 -03:00
"GR_T.raster.data[GR_T.raster.data == -10000] = 0\n",
2020-11-18 03:05:29 -03:00
"GR_T = gr.from_file(path_T)\n",
"geot_T = GR_T.geot\n",
"## Load List in coordinate latitud and longitude ###\n",
"with open(path_dict, \"rb\") as fp:\n",
" L_strings_coord = pickle.load(fp)"
]
},
2020-11-25 16:03:59 -03:00
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Load Classifier"
]
},
{
"cell_type": "code",
2020-12-18 16:27:01 -03:00
"execution_count": 9,
2020-11-25 16:03:59 -03:00
"metadata": {},
"outputs": [],
"source": [
"path_dataset = './Classifier/Data_set_2/Data_prueba_0/' \n",
"output_recognizer = path_dataset + \"model_SVM/recognizer.pickle\"\n",
"output_label = path_dataset + \"model_SVM/le.pickle\"\n",
"\n",
"\n",
"img_width, img_height = 224, 224\n",
"base_model = tf.keras.applications.Xception(input_shape=(img_height, img_width, 3), weights='imagenet', include_top=False)\n",
"\n",
"x = base_model.output\n",
"x = tf.keras.layers.GlobalAveragePooling2D()(x)\n",
"base_model = tf.keras.models.Model(inputs=base_model.input, outputs=x)\n",
"recognizer_SVM = pickle.loads(open(output_recognizer, \"rb\").read())\n",
"le = pickle.loads(open(output_label, \"rb\").read())"
]
},
2020-11-18 03:05:29 -03:00
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Classifier each panel"
]
},
{
"cell_type": "code",
2020-12-18 16:27:01 -03:00
"execution_count": 17,
2020-11-18 03:05:29 -03:00
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
2020-12-17 18:46:01 -03:00
"1\n",
"2\n",
"3\n",
"4\n",
"5\n",
"6\n",
"7\n",
"8\n"
2020-11-18 03:05:29 -03:00
]
},
{
2020-11-25 16:03:59 -03:00
"data": {
"text/plain": [
2020-12-18 16:27:01 -03:00
"<matplotlib.image.AxesImage at 0x7fdc745c1110>"
2020-11-25 16:03:59 -03:00
]
},
2020-12-18 16:27:01 -03:00
"execution_count": 17,
2020-11-25 16:03:59 -03:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2020-12-18 16:27:01 -03:00
"image/png": "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
2020-11-25 16:03:59 -03:00
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
2020-11-18 03:05:29 -03:00
}
],
"source": [
"\n",
2020-11-25 16:03:59 -03:00
"epsilon = -2\n",
2020-11-18 03:05:29 -03:00
"matrix_expand_bounds = [[-epsilon, -epsilon],[+epsilon, -epsilon], [+epsilon, +epsilon], [-epsilon, +epsilon]]\n",
"\n",
2020-12-17 18:46:01 -03:00
"for string_key in L_strings_coord.keys():\n",
2020-11-18 03:05:29 -03:00
" 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",
2020-12-17 18:46:01 -03:00
" if not GR_T.raster.data[Points[0][1] : Points[2][1], Points[0][0]: Points[2][0]].size == 0:\n",
2020-11-18 03:05:29 -03:00
" Im = np.zeros((img_height, img_width, 3))\n",
2020-12-17 18:46:01 -03:00
" Im[:,:,0] = cv2.resize(GR_T.raster.data[Points[0][1] : Points[2][1], Points[0][0]: Points[2][0]], (img_width, img_height))\n",
2020-11-18 03:05:29 -03:00
" Im[:,:,1] = Im[:,:,0].copy()\n",
" Im[:,:,2] = Im[:,:,0].copy()\n",
2020-11-25 16:03:59 -03:00
" panel['status'], panel['prob'] = classifier(base_model, recognizer_SVM, le, Im)\n",
2020-11-18 03:05:29 -03:00
" else:\n",
" print('problem with coords panel: ', string_key, '_', panel_key)\n",
"\n",
"plt.figure(figsize=(6, 6))\n",
2020-12-18 16:27:01 -03:00
"plt.imshow(Im.astype(int))"
2020-11-18 03:05:29 -03:00
]
},
{
"cell_type": "code",
2020-12-18 16:27:01 -03:00
"execution_count": 18,
2020-11-18 03:05:29 -03:00
"metadata": {},
2020-11-25 16:03:59 -03:00
"outputs": [
{
"data": {
"text/plain": [
2020-12-18 16:27:01 -03:00
"<matplotlib.image.AxesImage at 0x7fdc7464dbd0>"
2020-11-25 16:03:59 -03:00
]
},
2020-12-18 16:27:01 -03:00
"execution_count": 18,
2020-11-25 16:03:59 -03:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2020-12-18 16:27:01 -03:00
"image/png": "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
2020-11-25 16:03:59 -03:00
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
2020-11-18 03:05:29 -03:00
"source": [
2020-12-17 18:46:01 -03:00
"epsilon = 10\n",
2020-11-25 16:03:59 -03:00
"matrix_expand_bounds = [[-epsilon, -epsilon],[+epsilon, -epsilon], [+epsilon, +epsilon], [-epsilon, +epsilon]]\n",
"\n",
"\n",
2020-12-17 18:46:01 -03:00
"panel = string['panels']['2']\n",
2020-11-25 16:03:59 -03:00
"Points = Utils.gps2pixel(panel['points'], geot_T) + matrix_expand_bounds\n",
"plt.figure(figsize=(6, 6))\n",
2020-12-17 18:46:01 -03:00
"plt.imshow(GR_T.raster.data[Points[0][1] : Points[2][1], Points[0][0]: Points[2][0]],cmap = 'gray')\n"
2020-11-25 16:03:59 -03:00
]
},
{
"cell_type": "code",
2020-12-17 18:46:01 -03:00
"execution_count": null,
2020-11-25 16:03:59 -03:00
"metadata": {},
2020-12-17 18:46:01 -03:00
"outputs": [],
"source": []
2020-11-18 03:05:29 -03:00
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Save KML Panels"
]
},
{
"cell_type": "code",
2020-12-18 16:27:01 -03:00
"execution_count": 19,
2020-11-18 03:05:29 -03:00
"metadata": {},
2020-12-17 18:46:01 -03:00
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Listo\n"
]
}
],
2020-11-18 03:05:29 -03:00
"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",
2020-12-17 18:46:01 -03:00
" pmt.extendeddata.newdata(name= 'T°', value= panel['T'])\n",
2020-11-18 03:05:29 -03:00
" \n",
"kml.save(path_kml_panel)\n",
2020-11-25 16:03:59 -03:00
"## Save List in coordinate latitud and longitude ###\n",
"with open(path_new_dict, 'wb') as handle:\n",
" pickle.dump(L_strings_coord, handle, protocol=pickle.HIGHEST_PROTOCOL)\n",
2020-11-18 03:05:29 -03:00
"print('Listo')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
2020-12-18 16:27:01 -03:00
"execution_count": 20,
2020-11-18 03:05:29 -03:00
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2020-12-18 16:27:01 -03:00
"<matplotlib.image.AxesImage at 0x7fdc74d9a8d0>"
2020-11-18 03:05:29 -03:00
]
},
2020-12-18 16:27:01 -03:00
"execution_count": 20,
2020-11-18 03:05:29 -03:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2020-12-18 16:27:01 -03:00
"image/png": "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
2020-11-18 03:05:29 -03:00
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
2020-12-17 18:46:01 -03:00
"plt.imshow(GR_T.raster.data[Points[0][1] : Points[2][1], Points[0][0]: Points[2][0]].astype(int), cmap = 'gray')"
2020-11-18 03:05:29 -03:00
]
},
{
"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
}