2020-11-18 03:05:29 -03:00
{
"cells": [
{
"cell_type": "code",
2020-12-17 18:46:01 -03:00
"execution_count": 2,
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-17 18:46:01 -03:00
"execution_count": 3,
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",
"path_String = \"Los_Loros/Raster_Test.tif\"\n",
"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",
"GR_String = gr.from_file(path_String)\n",
"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-17 18:46:01 -03:00
"execution_count": 4,
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-17 18:46:01 -03:00
"execution_count": 8,
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-17 18:46:01 -03:00
"<matplotlib.image.AxesImage at 0x7f1bb41e4b90>"
2020-11-25 16:03:59 -03:00
]
},
2020-12-17 18:46:01 -03:00
"execution_count": 8,
2020-11-25 16:03:59 -03:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2020-12-17 18:46: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-17 18:46:01 -03:00
"plt.imshow(Im)"
2020-11-18 03:05:29 -03:00
]
},
{
"cell_type": "code",
2020-12-17 18:46:01 -03:00
"execution_count": 14,
2020-11-18 03:05:29 -03:00
"metadata": {},
2020-11-25 16:03:59 -03:00
"outputs": [
{
"data": {
"text/plain": [
2020-12-17 18:46:01 -03:00
"<matplotlib.image.AxesImage at 0x7f1bb41cbb10>"
2020-11-25 16:03:59 -03:00
]
},
2020-12-17 18:46:01 -03:00
"execution_count": 14,
2020-11-25 16:03:59 -03:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2020-12-17 18:46: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-17 18:46:01 -03:00
"execution_count": 20,
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-17 18:46:01 -03:00
"execution_count": 21,
2020-11-18 03:05:29 -03:00
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
2020-12-17 18:46:01 -03:00
"<matplotlib.image.AxesImage at 0x7f1ba07d3a90>"
2020-11-18 03:05:29 -03:00
]
},
2020-12-17 18:46:01 -03:00
"execution_count": 21,
2020-11-18 03:05:29 -03:00
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
2020-12-17 18:46: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
}