{ "cells": [ { "cell_type": "code", "execution_count": null, "id": "3d55b3a5", "metadata": {}, "outputs": [], "source": [ "ee.Authenticate() ### authenticate to google earth engine" ] }, { "cell_type": "code", "execution_count": 12, "id": "b2a68706", "metadata": {}, "outputs": [], "source": [ "# Initialize geemap\n", "geemap.ee_initialize()" ] }, { "cell_type": "code", "execution_count": null, "id": "cc548866", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Generating URL ...\n", "Downloading data from https://earthengine.googleapis.com/v1/projects/earthengine-legacy/thumbnails/66982d5e1e5ace8c58edb50649b9e90d-1e765a1d78eb6bb6c9b5e8db80dd82a5:getPixels\n", "Please wait ...\n", "Data downloaded to C:\\Users\\Sayed\\Desktop\\Hawaii NDVI\\NDVI final\\New folder\\New folder (2)\\bi\\bi_NDVI_20230914.tif\n", "Generating URL ...\n", "Downloading data from https://earthengine.googleapis.com/v1/projects/earthengine-legacy/thumbnails/077304d9e50c291342c68d933992bb82-09ba9cab3f2dfa2a5c2dddfd049ce0b4:getPixels\n", "Please wait ...\n", "Data downloaded to C:\\Users\\Sayed\\Desktop\\Hawaii NDVI\\NDVI final\\New folder\\New folder (2)\\bi\\bi_NDVI_20230915.tif\n", "Generating URL ...\n", "Downloading data from https://earthengine.googleapis.com/v1/projects/earthengine-legacy/thumbnails/39c75ba2b71724d64161e22ae7fbdf4a-cb3f8431ba228c14f098fe6b9f313563:getPixels\n", "Please wait ...\n", "Data downloaded to C:\\Users\\Sayed\\Desktop\\Hawaii NDVI\\NDVI final\\New folder\\New folder (2)\\bi\\bi_NDVI_20230916.tif\n", "Generating URL ...\n", "Downloading data from https://earthengine.googleapis.com/v1/projects/earthengine-legacy/thumbnails/7413fd0b2acedde8acf9a26cdc46e956-e74e6910b0b930be181cc1d1b178ff75:getPixels\n", "Please wait ...\n", "Data downloaded to C:\\Users\\Sayed\\Desktop\\Hawaii NDVI\\NDVI final\\New folder\\New folder (2)\\bi\\bi_NDVI_20230917.tif\n", "Generating URL ...\n", "Downloading data from https://earthengine.googleapis.com/v1/projects/earthengine-legacy/thumbnails/89de084e2442303c937d886cd288bbe5-cf330ca0f89090e4fb1441e25920425d:getPixels\n", "Please wait ...\n", "Data downloaded to C:\\Users\\Sayed\\Desktop\\Hawaii NDVI\\NDVI final\\New folder\\New folder (2)\\bi\\bi_NDVI_20230918.tif\n", "Generating URL ...\n", "Downloading data from https://earthengine.googleapis.com/v1/projects/earthengine-legacy/thumbnails/f12f12d390e0bc2952ee91d9c21fef81-587b960ac780037dbc84303254119fc9:getPixels\n", "Please wait ...\n", "Data downloaded to C:\\Users\\Sayed\\Desktop\\Hawaii NDVI\\NDVI final\\New folder\\New folder (2)\\bi\\bi_NDVI_20230919.tif\n", "Generating URL ...\n", "Downloading data from https://earthengine.googleapis.com/v1/projects/earthengine-legacy/thumbnails/512ac1a414670714edbe762738ff6651-54172f5fc989452d640d9c82a1eceebb:getPixels\n", "Please wait ...\n", "Data downloaded to C:\\Users\\Sayed\\Desktop\\Hawaii NDVI\\NDVI final\\New folder\\New folder (2)\\bi\\bi_NDVI_20230920.tif\n", "Generating URL ...\n", "Downloading data from https://earthengine.googleapis.com/v1/projects/earthengine-legacy/thumbnails/7d37d74e076e694963ebb999882ef622-149bf9dcff823079302eab275921430e:getPixels\n", "Please wait ...\n", "Data downloaded to C:\\Users\\Sayed\\Desktop\\Hawaii NDVI\\NDVI final\\New folder\\New folder (2)\\bi\\bi_NDVI_20230921.tif\n", "Generating URL ...\n", "Downloading data from https://earthengine.googleapis.com/v1/projects/earthengine-legacy/thumbnails/a62a89cad3b7e2215144f552040b0366-eeb4a8213b2a1e03de7e3c6b6f8dce86:getPixels\n", "Please wait ...\n", "File is not a zip file\n" ] } ], "source": [ "import geemap ### packge for google earth engine analysis \n", "\n", "import ee ### packge neccsary for using geemap\n", "import os \n", "\n", "\n", "# Create a list of extents\n", "extents = [\n", " {\n", " 'name': 'bi',\n", " 'geometry': ee.Geometry.Polygon([[[-154.668, 18.849],[-154.668, 20.334],[-156.243, 20.334],[-156.243, 18.849]]]),\n", " },\n", " {\n", " 'name': 'ka',\n", " 'geometry': ee.Geometry.Polygon([[[-159.2512, 21.819],[-159.2512, 22.269],[-159.816, 22.269],[-159.816, 21.819]]]),\n", " },\n", " {\n", " 'name': 'mn',\n", " 'geometry': ee.Geometry.Polygon([[[-155.9257, 20.343],[-155.9257, 21.32175],[-157.35, 21.32175],[-157.35, 20.343]]]),\n", " },\n", " {\n", " 'name': 'oa',\n", " 'geometry': ee.Geometry.Polygon([[[-157.602, 21.18],[-157.602, 21.7425],[-158.322, 21.7425],[-158.322, 21.18]]]),\n", " }\n", "]\n", "\n", "# Loop through each extent\n", "for extent in extents:\n", " # Create a Map for visualization\n", " Map = geemap.Map()\n", " Map.centerObject(extent['geometry'])\n", " Map.addLayer(extent['geometry'], {'color': 'red'}, extent['name'])\n", "\n", " # Load MODIS data\n", " modis = ee.ImageCollection('MODIS/061/MOD09GA')\n", "\n", " # Define date range and other parameters\n", " startDate = ee.Date('2023-09-01')\n", " endDate = ee.Date('2023-09-30')\n", " interval = 1\n", " dates = ee.List.sequence(startDate.millis(), endDate.millis(), interval * 24 * 60 * 60 * 1000)\n", "\n", " # Loop over the dates\n", " date_list = dates.getInfo()\n", " for dateMillis in date_list:\n", " date = ee.Date(dateMillis)\n", "\n", " # Filter the collection for the current date and extent\n", " filtered = modis.filterDate(date, date.advance(interval, 'day')).filterBounds(extent['geometry'])\n", "\n", " # Cloud masking function\n", " def maskMODISclouds(image):\n", " qa = image.select('state_1km')\n", " cloudBitMask = 1 << 10\n", " mask = qa.bitwiseAnd(cloudBitMask).eq(0)\n", " return image.updateMask(mask)\n", "\n", " filtered1 = filtered.map(maskMODISclouds)\n", "\n", " # NDVI calculation function\n", " def addNDVI(image):\n", " ndvi = image.normalizedDifference(['sur_refl_b02', 'sur_refl_b01']).rename('ndvi')\n", " return image.addBands(ndvi)\n", "\n", " withNdvi = filtered1.map(addNDVI)\n", "\n", " # Gap-filling function\n", " def fill(image):\n", " ima = image.focal_mean(1, 'square', 'pixels', 20)\n", " return ima.blend(image)\n", "\n", " filled = withNdvi.map(fill)\n", "\n", " # Clip NDVI based on the extent\n", " NDVIsen = filled.median().clip(extent['geometry'])\n", "# Create a folder based on the extent's name\n", " folder_name = extent['name']\n", " out_dir = os.path.expanduser(f'C:/Users/Sayed\\Desktop/Hawaii NDVI/NDVI final/New folder/New folder (2)/{folder_name}')\n", " \n", " # Ensure the folder exists or create it if not\n", " os.makedirs(out_dir, exist_ok=True)\n", "\n", " # Export the image to the folder with a unique name\n", " file_name = f'{extent[\"name\"]}_NDVI_{date.format(\"YYYYMMdd\").getInfo()}.tif'\n", " file_path = os.path.join(out_dir, file_name)\n", "\n", " geemap.ee_export_image(NDVIsen.select('ndvi'), filename=file_path, scale=250, region=extent['geometry'])" ] }, { "cell_type": "code", "execution_count": null, "id": "4e1a743a", "metadata": {}, "outputs": [], "source": [ "# Initialize MODIS ImageCollection\n", "modis = ee.ImageCollection('MODIS/061/MYD09Q1')\n", "image = modis.first()\n", "print(image.bandNames().getInfo())" ] }, { "cell_type": "code", "execution_count": 9, "id": "46d90d65", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Generating URL ...\n", "Downloading data from https://earthengine.googleapis.com/v1/projects/earthengine-legacy/thumbnails/9e5a57dfa1c5398d2b047640752030cc-0773e965f12868558f067b9363da1f4d:getPixels\n", "Please wait ...\n", "Data downloaded to C:\\Users\\Sayed\\Desktop\\Hawaii NDVI\\NDVI final\\New folder\\New folder\\bi\\bi_NDVI_20230829.tif\n", "Generating URL ...\n", "Downloading data from https://earthengine.googleapis.com/v1/projects/earthengine-legacy/thumbnails/695d02d2d9a1d238a648201f29482e6d-082c66feb81f1411239d8580ebe69916:getPixels\n", "Please wait ...\n", "Data downloaded to C:\\Users\\Sayed\\Desktop\\Hawaii NDVI\\NDVI final\\New folder\\New folder\\bi\\bi_NDVI_20230906.tif\n", "Generating URL ...\n", "Downloading data from https://earthengine.googleapis.com/v1/projects/earthengine-legacy/thumbnails/dc0d4371bd0f54ecd7bd08b4050d350e-e04df5559bf7105089922a89e3fc39f1:getPixels\n", "Please wait ...\n", "Data downloaded to C:\\Users\\Sayed\\Desktop\\Hawaii NDVI\\NDVI final\\New folder\\New folder\\bi\\bi_NDVI_20230914.tif\n", "Generating URL ...\n", "An error occurred while downloading.\n", "Image.select: Pattern 'ndvi' did not match any bands.\n", "Generating URL ...\n", "An error occurred while downloading.\n", "Image.select: Pattern 'ndvi' did not match any bands.\n", "Generating URL ...\n", "Downloading data from https://earthengine.googleapis.com/v1/projects/earthengine-legacy/thumbnails/6dc3b845d4e2b672f0b6253846f8120b-33bf749d4384a7b39f219607899649ce:getPixels\n", "Please wait ...\n", "Data downloaded to C:\\Users\\Sayed\\Desktop\\Hawaii NDVI\\NDVI final\\New folder\\New folder\\ka\\ka_NDVI_20230829.tif\n", "Generating URL ...\n", "Downloading data from https://earthengine.googleapis.com/v1/projects/earthengine-legacy/thumbnails/f1c86dc2354f4566a41bf2124408e7b5-fb1cfdad37f86b050cc3a154dd40a275:getPixels\n", "Please wait ...\n", "Data downloaded to C:\\Users\\Sayed\\Desktop\\Hawaii NDVI\\NDVI final\\New folder\\New folder\\ka\\ka_NDVI_20230906.tif\n", "Generating URL ...\n", "Downloading data from https://earthengine.googleapis.com/v1/projects/earthengine-legacy/thumbnails/303aad18ead090b31bfde52106f09c31-dac34f5fa958cec70b2a0bf2ac87d6b0:getPixels\n", "Please wait ...\n", "Data downloaded to C:\\Users\\Sayed\\Desktop\\Hawaii NDVI\\NDVI final\\New folder\\New folder\\ka\\ka_NDVI_20230914.tif\n", "Generating URL ...\n", "An error occurred while downloading.\n", "Image.select: Pattern 'ndvi' did not match any bands.\n", "Generating URL ...\n", "An error occurred while downloading.\n", "Image.select: Pattern 'ndvi' did not match any bands.\n", "Generating URL ...\n", "Downloading data from https://earthengine.googleapis.com/v1/projects/earthengine-legacy/thumbnails/68d45eba564acc8fecfa24289a5bf98a-732b255bd968fc789e41ec03600bd189:getPixels\n", "Please wait ...\n", "Data downloaded to C:\\Users\\Sayed\\Desktop\\Hawaii NDVI\\NDVI final\\New folder\\New folder\\mn\\mn_NDVI_20230829.tif\n", "Generating URL ...\n", "Downloading data from https://earthengine.googleapis.com/v1/projects/earthengine-legacy/thumbnails/ff8353423dfe97fdcf2bd34ee8ec8b10-ec1494020f628890f34a4ddd98e94910:getPixels\n", "Please wait ...\n", "Data downloaded to C:\\Users\\Sayed\\Desktop\\Hawaii NDVI\\NDVI final\\New folder\\New folder\\mn\\mn_NDVI_20230906.tif\n", "Generating URL ...\n", "Downloading data from https://earthengine.googleapis.com/v1/projects/earthengine-legacy/thumbnails/134cebee28cdc4a1c2154749e526c2c8-f5009d388a066834125fca54d186b28f:getPixels\n", "Please wait ...\n", "Data downloaded to C:\\Users\\Sayed\\Desktop\\Hawaii NDVI\\NDVI final\\New folder\\New folder\\mn\\mn_NDVI_20230914.tif\n", "Generating URL ...\n", "An error occurred while downloading.\n", "Image.select: Pattern 'ndvi' did not match any bands.\n", "Generating URL ...\n", "An error occurred while downloading.\n", "Image.select: Pattern 'ndvi' did not match any bands.\n", "Generating URL ...\n", "Downloading data from https://earthengine.googleapis.com/v1/projects/earthengine-legacy/thumbnails/b1d03d3310f9b65031a4945671caac81-7a169784691d0df9981b191764622c01:getPixels\n", "Please wait ...\n", "Data downloaded to C:\\Users\\Sayed\\Desktop\\Hawaii NDVI\\NDVI final\\New folder\\New folder\\oa\\oa_NDVI_20230829.tif\n", "Generating URL ...\n", "Downloading data from https://earthengine.googleapis.com/v1/projects/earthengine-legacy/thumbnails/7c069ce7b240df3719285e6ba3f97d30-c81a2022b8f66280384daa8b05ddb983:getPixels\n", "Please wait ...\n", "Data downloaded to C:\\Users\\Sayed\\Desktop\\Hawaii NDVI\\NDVI final\\New folder\\New folder\\oa\\oa_NDVI_20230906.tif\n", "Generating URL ...\n", "Downloading data from https://earthengine.googleapis.com/v1/projects/earthengine-legacy/thumbnails/cb23fe24eee578f7a2ddb05a73c9d185-62efe1ef80e35797757afbb739bee59f:getPixels\n", "Please wait ...\n", "Data downloaded to C:\\Users\\Sayed\\Desktop\\Hawaii NDVI\\NDVI final\\New folder\\New folder\\oa\\oa_NDVI_20230914.tif\n", "Generating URL ...\n", "An error occurred while downloading.\n", "Image.select: Pattern 'ndvi' did not match any bands.\n", "Generating URL ...\n", "An error occurred while downloading.\n", "Image.select: Pattern 'ndvi' did not match any bands.\n" ] } ], "source": [ "import geemap ### packge for google earth engine analysis \n", "\n", "import ee ### packge neccsary for using geemap\n", "import os \n", "\n", "\n", "# Create a list of extents\n", "extents = [\n", " {\n", " 'name': 'bi',\n", " 'geometry': ee.Geometry.Polygon([[[-154.668, 18.849],[-154.668, 20.334],[-156.243, 20.334],[-156.243, 18.849]]]),\n", " },\n", " {\n", " 'name': 'ka',\n", " 'geometry': ee.Geometry.Polygon([[[-159.2512, 21.819],[-159.2512, 22.269],[-159.816, 22.269],[-159.816, 21.819]]]),\n", " },\n", " {\n", " 'name': 'mn',\n", " 'geometry': ee.Geometry.Polygon([[[-155.9257, 20.343],[-155.9257, 21.32175],[-157.35, 21.32175],[-157.35, 20.343]]]),\n", " },\n", " {\n", " 'name': 'oa',\n", " 'geometry': ee.Geometry.Polygon([[[-157.602, 21.18],[-157.602, 21.7425],[-158.322, 21.7425],[-158.322, 21.18]]]),\n", " }\n", "]\n", "\n", "# Loop through each extent\n", "for extent in extents:\n", " # Create a Map for visualization\n", " Map = geemap.Map()\n", " Map.centerObject(extent['geometry'])\n", " Map.addLayer(extent['geometry'], {'color': 'red'}, extent['name'])\n", "\n", " # Load MODIS data\n", " modis = ee.ImageCollection('MODIS/061/MYD09A1')\n", "\n", " # Define date range and other parameters\n", " startDate = ee.Date('2023-08-29')\n", " endDate = ee.Date('2023-09-30')\n", " interval = 8\n", " dates = ee.List.sequence(startDate.millis(), endDate.millis(), interval * 24 * 60 * 60 * 1000)\n", "\n", " # Loop over the dates\n", " date_list = dates.getInfo()\n", " for dateMillis in date_list:\n", " date = ee.Date(dateMillis)\n", "\n", " # Filter the collection for the current date and extent\n", " filtered = modis.filterDate(date, date.advance(interval, 'day')).filterBounds(extent['geometry'])\n", "\n", " # Cloud masking function\n", " def maskMODISclouds(image):\n", " qa = image.select('StateQA')\n", " cloudBitMask = 1 << 10\n", " mask = qa.bitwiseAnd(cloudBitMask).eq(0)\n", " return image.updateMask(mask)\n", "\n", " filtered1 = filtered.map(maskMODISclouds)\n", "\n", " # NDVI calculation function\n", " def addNDVI(image):\n", " ndvi = image.normalizedDifference(['sur_refl_b02', 'sur_refl_b01']).rename('ndvi')\n", " return image.addBands(ndvi)\n", "\n", " withNdvi = filtered1.map(addNDVI)\n", "\n", " # Gap-filling function\n", " def fill(image):\n", " ima = image.focal_mean(1, 'square', 'pixels', 20)\n", " return ima.blend(image)\n", "\n", " filled = withNdvi.map(fill)\n", "\n", " # Clip NDVI based on the extent\n", " NDVIsen = filled.median().clip(extent['geometry'])\n", "# Create a folder based on the extent's name\n", " folder_name = extent['name']\n", " out_dir = os.path.expanduser(f'C:/Users/Sayed\\Desktop/Hawaii NDVI/NDVI final/New folder/New folder/{folder_name}')\n", " \n", " # Ensure the folder exists or create it if not\n", " os.makedirs(out_dir, exist_ok=True)\n", "\n", " # Export the image to the folder with a unique name\n", " file_name = f'{extent[\"name\"]}_NDVI_{date.format(\"YYYYMMdd\").getInfo()}.tif'\n", " file_path = os.path.join(out_dir, file_name)\n", "\n", " geemap.ee_export_image(NDVIsen.select('ndvi'), filename=file_path, scale=250, region=extent['geometry'])" ] }, { "cell_type": "code", "execution_count": null, "id": "864adc1d", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.10.10" } }, "nbformat": 4, "nbformat_minor": 5 }