Skip to content

Commit

Permalink
Updated GAIA.ipynb to 0.41b
Browse files Browse the repository at this point in the history
  • Loading branch information
OSINT-TECHNOLOGIES committed Dec 11, 2023
1 parent 153adca commit 0cc991f
Showing 1 changed file with 77 additions and 43 deletions.
120 changes: 77 additions & 43 deletions GAIA.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,12 @@
"import logging\n",
"import geocoder\n",
"import folium\n",
"import json\n",
"import matplotlib.pyplot as plt\n",
"from folium.plugins import Draw\n",
"from ipyleaflet import *\n",
"from colorama import Fore\n",
"from PIL import Image\n",
"\n",
"# PROGRAM MODULES IMPORT\n",
"sys.path.insert(0, 'gee//modules//') # gee modules path\n",
Expand Down Expand Up @@ -53,7 +56,7 @@
"\n",
"mr.Markdown(text = '**🌎 GAIA - Geospatial & Aerial Images Analyser [BETA] 🌎**')\n",
"mr.Markdown(text = '**🌎 This program solution is not final and some details are potentially to be changed 🌎**')\n",
"mr.Markdown(text = '**🌏 Current version - 0.4b 🌏**')\n",
"mr.Markdown(text = '**🌏 Current version - 0.41b 🌏**')\n",
"\n",
"text = 'OSINT-TECHNOLOGIES'\n",
"text_params = {\n",
Expand All @@ -68,9 +71,9 @@
"}\n",
"\n",
"sources_list = [\"Google EE\", \"OpenStreetMap\"]\n",
"control_panel_choice = mr.Select(value=\"Google EE\", choices=sources_list, label=\"Choose the source control panel\")\n",
"control_panel_choice = mr.Select(value=\"Google EE\", choices=sources_list, label=\"Choose the source control panel 🔍\")\n",
"\n",
"app = mr.App(title=\"GAIA v0.4b [BETA] 🌐\",\n",
"app = mr.App(title=\"GAIA v0.41b [BETA] 🌐\",\n",
" description=\"Open-Source Geospatial & Aerial Images Analyser\",\n",
" show_code=False,\n",
" show_prompt=False,\n",
Expand All @@ -92,26 +95,6 @@
"# GOOGLE EE PROCESSING\n",
"\n",
"if control_panel_choice.value == \"Google EE\":\n",
" ee_user_guide = mr.Button(label=\"How to start Google EE\")\n",
" ee_reg = mr.Button(label=\"EE registration\")\n",
" ee_service_acc = mr.Button(label=\"Create EE service account\")\n",
" save_map_html = mr.Button(label=\"Save current map [HTML]\")\n",
" ds_info = mr.Checkbox(value=False, label='Show datasets technical info')\n",
" manual_input = mr.Checkbox(value=False, label='Open custom GEE dataset menu')\n",
" date_one = mr.Text(value=\"2022-01-01\", label=\"Enter start date (format YYYY-MM-DD)\", rows=1)\n",
" date_two = mr.Text(value=\"2022-01-02\", label=\"Enter final date (format YYYY-MM-DD)\", rows=1)\n",
" max_cloud_covering = mr.Slider(value=80, label='Max cloud cover (%, may affect datasets quality)', min=0, max=100)\n",
" datasets_landsat = mr.Checkbox(value=False, label=\"Show Landsat datasets\")\n",
" datasets_sentinel = mr.Checkbox(value=False, label=\"Show Sentinel datasets\")\n",
" datasets_modis = mr.Checkbox(value=False, label=\"Show MODIS datasets\")\n",
" datasets_other = mr.Checkbox(value=False, label='Show other datasets')\n",
"\n",
" if ee_reg.clicked:\n",
" webbrowser.open_new_tab('https://code.earthengine.google.com/register')\n",
" \n",
" if ee_service_acc.clicked:\n",
" webbrowser.open_new_tab('https://console.cloud.google.com/iam-admin/serviceaccounts/')\n",
" \n",
" if str((cec.service_acc_filename).rstrip()) not in os.listdir():\n",
" print(Fore.RED + '[File/directory missing error]. Your EE credentials .JSON file was not found in GAIA directory')\n",
" mr.Stop()\n",
Expand All @@ -120,47 +103,87 @@
" service_account = (cec.service_acc_mail).rstrip()\n",
" credentials = ee.ServiceAccountCredentials(service_account, key_file)\n",
" ee.Initialize(credentials)\n",
"\n",
" \n",
" m = geemap.Map()\n",
" m.add_text(text, **text_params)\n",
" m.add_basemap('SATELLITE')\n",
" m.add_basemap('TERRAIN')\n",
" m.add_basemap('HYBRID')\n",
" \n",
"\n",
" ee_user_guide = mr.Checkbox(value=False, label=\"How to start Google EE\")\n",
" ds_info = mr.Checkbox(value=False, label='Show datasets knowledge base')\n",
"\n",
" date_one = mr.Text(value=\"2022-01-01\", label=\"Enter start date (format YYYY-MM-DD)\", rows=1)\n",
" date_two = mr.Text(value=\"2022-01-02\", label=\"Enter final date (format YYYY-MM-DD)\", rows=1)\n",
"\n",
" max_cloud_covering = mr.Slider(value=80, label='Max cloud cover (%, may affect datasets quality)', min=0, max=100)\n",
" datasets_landsat = mr.Checkbox(value=False, label=\"Show Landsat datasets\")\n",
" datasets_sentinel = mr.Checkbox(value=False, label=\"Show Sentinel datasets\")\n",
" datasets_modis = mr.Checkbox(value=False, label=\"Show MODIS datasets\")\n",
" datasets_other = mr.Checkbox(value=False, label='Show other datasets')\n",
" \n",
" try:\n",
" if manual_input.value:\n",
" custom_ds = mr.Text(value=\"-\", label=\"[Custom DS] Enter GEE dataset name\", rows=1)\n",
" date_one_custom = mr.Text(value=\"1972-01-01\", label=\"[Custom DS] Enter start date (format YYYY-MM-DD)\", rows=1)\n",
" date_two_custom = mr.Text(value=\"1973-01-01\", label=\"[Custom DS] Enter final date (format YYYY-MM-DD)\", rows=1)\n",
" cd_init.customds_initialization(m, date_one_custom, date_two_custom, custom_ds)\n",
" \n",
" if datasets_landsat.value:\n",
" l_init.landsat_initialization(m, date_one, date_two, max_cloud_covering)\n",
" \n",
" if datasets_sentinel.value:\n",
" s_init.sentinel_initialization(m, date_one, date_two, max_cloud_covering)\n",
" \n",
" \n",
" if datasets_modis.value:\n",
" m_init.modis_initialization(m, date_one, date_two)\n",
" \n",
" \n",
" if datasets_other.value:\n",
" o_init.others_initialization(m, date_one, date_two)\n",
" \n",
" o_init.others_initialization(m, date_one, date_two) \n",
" except ee.EEException as error:\n",
" print(Fore.RED + '[Map plotting/initialization error] - {}'.format(str(error)))\n",
" logger.error(error)\n",
" pass\n",
"\n",
" manual_input = mr.Checkbox(value=False, label='Open custom GEE dataset menu')\n",
" if manual_input.value:\n",
" try:\n",
" custom_ds = mr.Text(value=\"-\", label=\"[Custom DS] Enter GEE dataset name\", rows=1)\n",
" date_one_custom = mr.Text(value=\"1972-01-01\", label=\"[Custom DS] Enter start date (format YYYY-MM-DD)\", rows=1)\n",
" date_two_custom = mr.Text(value=\"1973-01-01\", label=\"[Custom DS] Enter final date (format YYYY-MM-DD)\", rows=1)\n",
" cd_init.customds_initialization(m, date_one_custom, date_two_custom, custom_ds)\n",
" except ee.EEException as error:\n",
" print(Fore.RED + '[Map plotting/initialization error] - {}'.format(str(error)))\n",
" logger.error(error)\n",
" pass\n",
"\n",
" save_map_html = mr.Button(label=\"Save current map [HTML]\")\n",
" ee_reg = mr.Button(label=\"EE registration\")\n",
" ee_service_acc = mr.Button(label=\"Create EE service account\")\n",
"\n",
" if ee_reg.clicked:\n",
" webbrowser.open_new_tab('https://code.earthengine.google.com/register')\n",
" \n",
" if ee_service_acc.clicked:\n",
" webbrowser.open_new_tab('https://console.cloud.google.com/iam-admin/serviceaccounts/')\n",
"\n",
" m.add_text(text, **text_params)\n",
" \n",
" mr.Markdown(text = \"#GOOGLE EARTH ENGINE MAP 🌐\")\n",
" mr.Markdown(text = \"**DATASETS TIME PERIOD: from {} to {}**\".format(date_one.value, date_two.value))\n",
" \n",
" if manual_input.value:\n",
" mr.Markdown(text = \"**CUSTOM DATASETS TIME PERIOD: from {} to {}**\".format(date_one_custom.value, date_two_custom.value))\n",
" \n",
" if ds_info.value:\n",
" mr.Markdown(text=\"**LANDSAT BANDS COMBINATIONS ⤵**\")\n",
" clb = Image.open('gee//data//clb.png')\n",
" plt.figure(figsize=(7, 7))\n",
" plt.imshow(clb)\n",
" plt.axis('off')\n",
" plt.show()\n",
" mr.Markdown(text=\"**SENTINEL 2 BANDS COMBINATIONS ⤵**\")\n",
" csb = Image.open('gee//data//csb.png')\n",
" plt.figure(figsize=(7, 7))\n",
" plt.imshow(csb)\n",
" plt.axis('off')\n",
" plt.show()\n",
" txtr.ds_info_read()\n",
" \n",
" if ee_user_guide.clicked:\n",
"\n",
" if ee_user_guide.value:\n",
" txtr.ee_guide_read()\n",
" \n",
" download_dir = os.path.join(os.path.expanduser('~'), 'Downloads')\n",
Expand All @@ -185,16 +208,29 @@
"\n",
"if control_panel_choice.value == \"OpenStreetMap\":\n",
" mr.Markdown(text = \"#OPENSTREETMAP 🌐\")\n",
" geojson_file = mr.File(label=\"Upload GeoJSON file for processing\", max_file_size=\"100MB\")\n",
" place_long = mr.Text(value=\"\", label=\"Place longitude: \", rows=1)\n",
" place_lat = mr.Text(value=\"\", label=\"Place latitude: \", rows=1)\n",
" basic_zoom = mr.Slider(value=15, label='Basic map zoom (less = more info on the map): ', min=1, max=20)\n",
" add_datasets = mr.Checkbox(value=False, label=\"View additional maps (for interactive map only)\")\n",
" dual_maps = mr.Checkbox(value=False, label=\"Enter dual maps mode (for interactive map only)\")\n",
" osm_analysis = mr.Checkbox(value=False, label=\"Open OSM analysis menu\")\n",
" lat = place_lat.value\n",
" long = place_long.value\n",
" \n",
" try:\n",
" map_folium = folium.Map(location=[place_lat.value, place_long.value], zoom_start=basic_zoom.value)\n",
"\n",
" map_folium = folium.Map(location=[lat, long], zoom_start=basic_zoom.value)\n",
" if geojson_file.filepath is not None:\n",
" try:\n",
" geojson = open(geojson_file.filepath)\n",
" geojson_info = json.load(geojson)\n",
" coordinates = geojson_info['features'][0]['geometry']['coordinates']\n",
" folium.GeoJson(geojson_info, name='geojson').add_to(map_folium)\n",
" except IndexError as error:\n",
" print(Fore.RED + '[GeoJSON file error] - {}'.format(str(error)))\n",
" else:\n",
" pass\n",
" \n",
" if add_datasets.value:\n",
" op.additional_datasets(map_folium)\n",
"\n",
Expand All @@ -216,9 +252,7 @@
" map_size = mr.Slider(value=15, label='Map size (NxN):', min=1, max=20)\n",
" place_delta = mr.Text(value=\"0.1\", label=\"DELTA (default is 0.1): \", rows=1)\n",
" g = geocoder.osm([place_lat.value, place_long.value], method='reverse')\n",
" start = str(g).find('[') + 20\n",
" end = str(g).rfind(']')\n",
" mr.Markdown(text = \"**PLACE NAME: {}**\".format(str(g)[start:end]))\n",
" mr.Markdown(text = \"**PLACE NAME: {}**\".format(str(g)))\n",
" #g.json for more information\n",
" op.map_plotting(map_size, place_long.value, place_lat.value, place_delta.value)\n",
"\n",
Expand Down

0 comments on commit 0cc991f

Please sign in to comment.