-
Notifications
You must be signed in to change notification settings - Fork 0
/
flood_data
1 lines (1 loc) · 17 KB
/
flood_data
1
{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.13","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[],"dockerImageVersionId":30698,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"source":"<a href=\"https://www.kaggle.com/code/jorgeluiscruzquispe/descarga-datos-de-caudales-del-senamhi?scriptVersionId=190682827\" target=\"_blank\"><img align=\"left\" alt=\"Kaggle\" title=\"Open in Kaggle\" src=\"https://kaggle.com/static/images/open-in-kaggle.svg\"></a>","metadata":{},"cell_type":"markdown"},{"cell_type":"markdown","source":"## <center><i>Descarga de datos de series de tiempo de caudales</i></center>\n---","metadata":{}},{"cell_type":"markdown","source":"La descarga de datos de caudales se realiza en base a un conjunto de subcuencas realizadas de un estudio de regionalización (articulo), no sé encontró información de los puntos de los cuales se hace registro el producto final (me canse de buscar) y el shapefile de subcuenca fue brindada de la misma fuente.\n\n#### Caudal Mensual\n\n- Revisar articulo: https://www.mdpi.com/2073-4441/13/8/1048\n\n- Revisar fuente: https://iridl.ldeo.columbia.edu/SOURCES/.SENAMHI/.HSR/.PISCO/.Streamflow/.v1p1/.monthly/.GR2Ms/\n\n- Figshare: https://figshare.com/articles/dataset/PISCO_HyM_GR2M_v1_1/14382758?file=31132945\n\n#### Caudal Diaria\n\n- Revisar articulo: https://www.sciencedirect.com/science/article/pii/S221458182300068X?via%3Dihub\n\n- Revisar fuente: https://iridl.ldeo.columbia.edu/SOURCES/.SENAMHI/.HSR/.PISCO/.Streamflow/.v1p1/.monthly/.GR2Ms/\n\n- hydroshare: https://www.hydroshare.org/resource/f723d6c762ca45b6936dd9489bc44842/","metadata":{}},{"cell_type":"code","source":"!pip install -q leafmap","metadata":{"execution":{"iopub.status.busy":"2024-08-01T03:40:35.728638Z","iopub.execute_input":"2024-08-01T03:40:35.729133Z","iopub.status.idle":"2024-08-01T03:40:59.494333Z","shell.execute_reply.started":"2024-08-01T03:40:35.729092Z","shell.execute_reply":"2024-08-01T03:40:59.49257Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import leafmap.foliumap as leafmap\nimport matplotlib.pyplot as plt\nimport plotly.express as px\nimport geopandas as gpd\nimport pandas as pd\nimport xarray as xr\nimport shapely\nimport os","metadata":{"execution":{"iopub.status.busy":"2024-08-01T03:40:59.497015Z","iopub.execute_input":"2024-08-01T03:40:59.49741Z","iopub.status.idle":"2024-08-01T03:41:03.421679Z","shell.execute_reply.started":"2024-08-01T03:40:59.497375Z","shell.execute_reply":"2024-08-01T03:41:03.420433Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"%%capture\n!wget https://iri.columbia.edu/~remic/files/Subbasins_GR2M_Peru/Subbasins_GR2M.zip\n!unzip Subbasins_GR2M.zip\n\n!wget https://iridl.ldeo.columbia.edu/SOURCES/.SENAMHI/.HSR/.PISCO/.Streamflow/.v1p1/.monthly/.GR2Ms/.QR/data.nc\nos.rename(\"data.nc\", \"streamflow1.nc\")\n\n!wget https://www.hydroshare.org/resource/f723d6c762ca45b6936dd9489bc44842/data/contents/PISCO_HyD_ARNOVIC_v1.0.nc\nos.rename(\"PISCO_HyD_ARNOVIC_v1.0.nc\", \"streamflow2.nc\")","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2024-08-01T03:41:03.423271Z","iopub.execute_input":"2024-08-01T03:41:03.423657Z","iopub.status.idle":"2024-08-01T03:41:42.904669Z","shell.execute_reply.started":"2024-08-01T03:41:03.423623Z","shell.execute_reply":"2024-08-01T03:41:42.903123Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def flood_filter(gid = 1, data_type = \"monthly\"):\n if data_type == \"monthly\":\n streamflow = xr.load_dataset(\"streamflow1.nc\", decode_times = False).isel(gid = gid)\n df = pd.DataFrame({\"flood\" : streamflow.QR.data.flatten()}, \n index = pd.to_datetime(pd.date_range(\"1981-01-01\", periods = len(streamflow.T.data), freq = \"ME\")\\\n .strftime('%Y-%m-%d')))\n return df\n elif data_type == \"daily\":\n streamflow = xr.load_dataset(\"streamflow2.nc\").sel(comid = float(gid))\n df = pd.DataFrame({\"flood\" : streamflow.qr.data.flatten()}, \n index = pd.to_datetime(streamflow.time.data).strftime('%Y-%m-%d'))\n return df\n else:\n return print(\"Ingresaste un valor inadmisible\")\n \ndef sub_basin_filter(gid = 1):\n gdf = sub_basins[sub_basins.ID == gid]\n return gdf\n\ndef df_to_gdfPoint(df):\n return shapely.geometry.Point(df['Longitud'], df['Latitud'])","metadata":{"execution":{"iopub.status.busy":"2024-08-01T04:23:42.661735Z","iopub.execute_input":"2024-08-01T04:23:42.662185Z","iopub.status.idle":"2024-08-01T04:23:42.673655Z","shell.execute_reply.started":"2024-08-01T04:23:42.662147Z","shell.execute_reply":"2024-08-01T04:23:42.672242Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## 1. Descarga de datos de caudales diarios","metadata":{}},{"cell_type":"code","source":"stfw_day_df = pd.DataFrame({\n \"Estación\": ['PALMALES', 'CABO INGA', 'ALAMOR', 'BOCATOMA CHIPILLICO', 'PTE. INT. MACARA', 'PTE. SIMON RODRIGUEZ', 'SALITRAL', 'SAN PEDRO', 'PUENTE ÑACARA', 'PUENTE TUMBES', 'EL TIGRE', 'LA ARDILLA', 'HACIENDA BARRIOS', 'EL CIRUELO', 'SAUZAL', 'BOCATOMA LA ZAMBA', 'CORRAL DEL MEDIO', 'LAGARTERA', 'TAMBOGRANDE', 'CIRATO', 'COCHALAN', 'MAGUNCHAL', 'LOS NARANJOS', 'MAYGASBAMBA', 'PUCHACA', 'CHOTANO LAJAS', 'RACARUMI', 'CAÑAD', 'CORRAL QUEMADO', 'CUMBA', 'CACAO', 'LLAUCANO CORELLAMA', 'PTE. AMBAN', 'PUENTE SAN CARLOS', 'TUNEL CHOTANO', 'NARANJITO', 'PUENTE SALINAS AMOJAO', 'TONGOD', 'HUALLAPE', 'NAMORA BOCATOMA', 'RIO GRANDE', 'MASHCON', 'PUENTE PALMIRA', 'PTE. CHILETE', 'YONAN GORE', 'BALSAS', 'CRISNEJAS', 'JESUS TUNEL', 'SALINAR', 'EL TAMBO', 'PUENTE COINA', 'SAYAN', 'LA CAPILLA', 'SAN MATEO', 'PUENTE MAGDALENA', 'PICOY', 'PARIACANCHA', 'SANTO DOMINGO', 'VICHAYCOCHA', 'OBRAJILLO', 'SOCSI', 'CONDORCERRO', 'RIO BLANCO', 'SANTA EULALIA', 'ANTAPUCRO', 'CHOSICA', 'HUASAPAMPA', 'CONTA', 'HUALLPOCA', 'LLAUTA', 'EL TAMBO HUAMANI', 'CHALLACA', 'LETRAYOC', 'LOS MOLINOS', 'OCOÑA', 'LA PASCANA', 'TINGO GRANDE', 'SUMBAY', 'HUATIAPA', 'PUENTE EL DIABLO', 'CHUAPALCA ALTERNATIVA ALTA', 'ANCOAQUE', 'CAPLINA', 'CERRO BLANCO', 'CHALLATA', 'CORANCHAY', 'CORUCA', 'LA TRANCA', 'OTORA', 'PUENTE TALAPALCA', 'PUENTE VIEJO', 'TUMILACA', 'VILACOTA', 'TICAPAMPA', 'CONTAMANA', 'REQUENA', 'SAN LORENZO', 'SAN REGIS', 'NAUTA', 'TIMICURILLO', 'BELLAVISTA', 'GENARO HERRERA', 'BORJA', 'SANTA ROSA', 'SANTA CLOTILDE', 'LAGUNAS', 'TAMSHIYACU', 'YURIMAGUAS ENP', 'SANTA MARIA DE NANAY', 'CHAZUTA', 'PICOTA', 'SHANAO', 'BIAVO', 'HUAYABAMBA', 'CUMBAZA', 'TINGO MARIA', 'PUENTE HIGUERAS', 'PUENTE TOCACHE', 'CHINCHAVITO', 'PUERTO INCA', 'SAN ALEJANDRO', 'SAN RAFAEL', 'PTE. BELLA', 'TARUCA', 'PTE. AGUAYTIA', 'PUENTE PEREZ', 'PUCALLPA - COHIDRO', 'PTE. BREÑA', 'RIO TULUMAYO', 'SANTA ROSA CHAPIMARCA', 'PISAC', 'PUENTE CUNYAC', 'INTIHUATANA KM105', 'PAUCARTAMBO', 'PUENTE INAMBARI', 'SALCCA', 'CHILCA', 'PUENTE PAMPAS', 'RIO VERDE', 'PUENTE HUANCANE', 'PUENTE RAMIS', 'PUENTE AYAVIRI', 'LIMBANI', 'LAMPA', 'PUENTE LOROCO CALLACAME', 'PTE. COATA-UNOCOLLA', 'HUANCASAYA', 'PUENTE ISLA CABANILLAS', 'PTE. AZANGARO'],\n \"comid\": [9036793, 9038083, 9040285, 9041447, 9039887, 9042188, 9044601, 9043206, 9043133, 9036610, 9037728, 9040511, 9044140, 9039937, 9046197, 9041504, 9043596, 9041447, 9042297, 9050298, 9044874, 9047319, 9046145, 9050405, 9049086, 9049828, 9050297, 9050443, 9046220, 9047181, 9046936, 9050586, 9050197, 9050297, 9049828, 9046420, 9044730, 9051044, 9044773, 9053135, 9052355, 9052670, 9054296, 9052837, 9053102, 9051566, 9053971, 9053140, 9055078, 9054452, 9055405, 9069626, 9075483, 9072150, 9071801, 9068753, 9071680, 9070624, 9069681, 9071680, 9077057, 9059185, 9072392, 9072677, 9073479, 9073056, 9081037, 9078229, 9082353, 9082006, 9079806, 9079443, 9078875, 9079987, 9088590, 9090954, 9088623, 9086707, 9087254, 9088602, 9091343, 9091196, 9092689, 9093554, 9093380, 9091513, 9092471, 9092888, 9090720, 9092044, 9092552, 9090831, 9090968, 9091960, 9053555, 9043425, 9041924, 9040439, 9040454, 9036459, 9036028, 9042214, 9040208, 9039635, 9032282, 9043572, 9038269, 9046779, 9037738, 9049907, 9051576, 9049270, 9053120, 9053119, 9049617, 9061888, 9064629, 9057507, 9063522, 9062666, 9060130, 9066563, 9061931, 9064315, 9060753, 9062659, 9057926, 9073207, 9069957, 9080088, 9078090, 9078565, 9077404, 9077710, 9077286, 9080691, 9077427, 9078380, 9086022, 9083890, 9084607, 9083379, 9080887, 9085153, 9089115, 9085384, 9084952, 9085698, 9083472],\n \"Latitud\": [-3.6529, -3.9787, -4.47749, -4.7136, -4.3927, -4.8801, -5.346, -5.07954, -5.112894, -3.5717, -3.7688, -4.4899, -5.2899, -4.3003, -5.77168, -4.66444, -5.18871, -4.7285, -4.9369, -6.6558, -5.4651, -5.8898, -5.7557, -6.67411, -6.3732, -6.5597, -6.6333, -6.649, -5.7511, -5.9444, -5.88406, -6.6866, -6.582725, -6.6152, -6.5406, -5.8197, -5.4506, -6.7446, -5.45077, -7.2426, -7.0908, -7.165, -7.5492, -7.2197, -7.25592, -6.8448, -7.46354, -7.2294, -7.66069, -7.5742, -7.7964, -11.1347, -12.5222, -11.7601, -11.69639, -10.9216, -11.3932, -11.3836, -11.1392, -11.45293, -13.02825, -8.6579, -11.7345, -11.9199, -12.0315, -11.9301, -14.2666, -13.4394, -14.6287, -14.239975, -13.84358, -13.7905, -13.6401, -13.9248, -16.427, -16.99936, -16.460115, -15.835174, -16.00806, -16.42679, -17.28727, -17.1997, -17.6907, -17.9684, -17.8151, -17.1141, -17.6331, -17.7431, -17.0069, -17.4749, -17.61756, -17.128433, -17.1198, -17.47659, -7.3522, -5.041, -4.8332, -4.513, -4.515, -3.5235, -3.482, -4.902, -4.4702, -4.2316, -2.487, -5.2171, -4.003, -5.898, -3.8891, -6.57, -6.9489, -6.4333, -7.2549, -7.2711, -6.4667, -9.29, -9.9222, -8.18475, -9.515, -9.384, -8.8309, -10.3399, -9.32, -9.85038, -9.039, -9.34694, -8.36225, -12.0521, -11.2091222, -13.9917, -13.42264, -13.56213, -13.18517, -13.3177, -13.18638, -14.16963, -13.2235, -13.43493, -15.684359, -15.215851, -15.2543, -14.89249, -14.1522, -15.4439, -16.571, -15.4513, -15.14308, -15.4721, -14.9198],\n \"Longitud\": [-80.1871, -80.3991, -80.39788, -80.1172, -79.9644, -81.0216, -79.8376, -80.0162, -80.172974, -80.4617, -80.4568, -80.3906, -79.6992, -80.1503, -79.39769, -79.89735, -79.89148, -80.06956, -80.3437, -79.074, -78.9885, -78.1886, -78.4316, -78.52437, -79.4669, -78.7411, -79.3167, -78.9973, -78.6906, -78.6611, -78.96256, -78.5182, -78.9126, -79.2714, -78.7828, -78.2758, -78.4886, -78.8139, -78.69579, -78.2947, -78.5447, -78.4783, -78.8105, -78.838, -79.09909, -78.0301, -78.11313, -78.4131, -78.96109, -78.7069, -78.3801, -77.1982, -76.4966, -76.3011, -76.85806, -76.7367, -76.5025, -77.0503, -76.6246, -76.62217, -76.1945, -78.2617, -76.2596, -76.6669, -76.6244, -76.6899, -73.95, -75.9751, -74.955, -74.92134, -75.5892, -75.3821, -75.7196, -75.6787, -73.1145, -71.63879, -71.573905, -71.106039, -72.48355, -71.67503, -69.6435, -69.9392, -69.9166, -70.1522, -70.0989, -70.2883, -70.4546, -70.4718, -70.8534, -70.1721, -70.76097, -70.83669446, -70.0565, -70.54263, -75.0008, -73.84, -76.6979, -73.907, -73.583, -73.083, -73.073, -73.6715, -77.5477, -69.9569, -73.679, -75.6679, -73.162, -76.101, -73.6961, -76.119, -76.325, -76.6, -76.4777, -76.7456, -76.3833, -76.003, -76.3094, -76.50789, -75.9425, -74.968, -75.2128, -76.1824, -76.0278, -76.15236, -75.504, -75.9825, -74.51953, -75.2401, -75.33480833, -73.1748, -71.85388, -72.57525, -72.52319, -71.59741, -70.38401, -71.23172, -72.3405, -73.82737, -70.5999, -69.792531, -69.8719, -70.58544, -69.6907, -70.209, -69.3226, -70.1919, -69.21467, -70.2244, -70.1894],\n})\n\nstfw_day_df['geometry'] = stfw_day_df.apply(df_to_gdfPoint, axis=1)\n\nstfw_day_df = gpd.GeoDataFrame(stfw_day_df, geometry = \"geometry\", crs = 4326)\n\nstfw_day_df","metadata":{"execution":{"iopub.status.busy":"2024-08-01T04:23:43.397155Z","iopub.execute_input":"2024-08-01T04:23:43.397615Z","iopub.status.idle":"2024-08-01T04:23:43.493194Z","shell.execute_reply.started":"2024-08-01T04:23:43.397575Z","shell.execute_reply":"2024-08-01T04:23:43.491724Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"stfw_day_df.explore(color = \"blue\", tiles = \"CartoDB dark_matter\")","metadata":{"execution":{"iopub.status.busy":"2024-08-01T04:23:44.713133Z","iopub.execute_input":"2024-08-01T04:23:44.713548Z","iopub.status.idle":"2024-08-01T04:23:44.804819Z","shell.execute_reply.started":"2024-08-01T04:23:44.713513Z","shell.execute_reply":"2024-08-01T04:23:44.803399Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"gid = 9073479\n\ndf_station = stfw_day_df[stfw_day_df['comid'] == gid]\n\n# se podría decir que solo esta linea de codigo nos interesa\nday_fil = flood_filter(gid = gid, data_type = \"daily\")\n\nplot1 = px.area(day_fil, template = \"plotly_dark\", color_discrete_sequence = ['blue'])\n\nplot1.update_layout(\n title = f\"Hidrograma de la Estación {df_station['Estación'].values[0].capitalize()}\",\n xaxis_title = \"Fecha (dias)\",\n yaxis_title = \"Caudal (m³/s)\"\n)\n\nplot1.update_xaxes(showgrid = False)\n\nplot1.show()","metadata":{"execution":{"iopub.status.busy":"2024-08-01T03:41:50.211898Z","iopub.execute_input":"2024-08-01T03:41:50.212383Z","iopub.status.idle":"2024-08-01T03:41:54.76864Z","shell.execute_reply.started":"2024-08-01T03:41:50.212342Z","shell.execute_reply":"2024-08-01T03:41:54.766976Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"day_fil.to_csv(\"daily_flood.csv\")\ndf_station.to_csv(\"station_info.csv\")","metadata":{"execution":{"iopub.status.busy":"2024-08-01T03:41:54.770326Z","iopub.execute_input":"2024-08-01T03:41:54.770733Z","iopub.status.idle":"2024-08-01T03:41:54.822298Z","shell.execute_reply.started":"2024-08-01T03:41:54.770696Z","shell.execute_reply":"2024-08-01T03:41:54.820818Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## 2. Descarga de datos de caudales mensuales","metadata":{"execution":{"iopub.status.busy":"2024-07-31T13:47:54.265126Z","iopub.execute_input":"2024-07-31T13:47:54.265574Z","iopub.status.idle":"2024-07-31T13:47:54.275451Z","shell.execute_reply.started":"2024-07-31T13:47:54.265539Z","shell.execute_reply":"2024-07-31T13:47:54.274311Z"}}},{"cell_type":"code","source":"sub_basins = gpd.read_file(\"Subbasins_GR2M/Subbasins_GR2M_Peru.shp\")\n\nsub_basins","metadata":{"execution":{"iopub.status.busy":"2024-08-01T03:41:54.824177Z","iopub.execute_input":"2024-08-01T03:41:54.824645Z","iopub.status.idle":"2024-08-01T03:41:56.967859Z","shell.execute_reply.started":"2024-08-01T03:41:54.824601Z","shell.execute_reply":"2024-08-01T03:41:56.966078Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sub_basins.plot(column = 'Region', cmap = \"jet\", categorical = True, figsize = (10, 10),\n legend = True, alpha = 0.7, lw = 1, legend_kwds={'fontsize': 7});","metadata":{"execution":{"iopub.status.busy":"2024-08-01T03:41:56.971347Z","iopub.execute_input":"2024-08-01T03:41:56.971778Z","iopub.status.idle":"2024-08-01T03:41:59.555508Z","shell.execute_reply.started":"2024-08-01T03:41:56.971742Z","shell.execute_reply":"2024-08-01T03:41:59.553707Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"gid = 15\n\nsub_basin_filter(gid = gid).boundary.explore(color = \"red\", tiles = \"CartoDB dark_matter\")","metadata":{"execution":{"iopub.status.busy":"2024-08-01T03:41:59.557273Z","iopub.execute_input":"2024-08-01T03:41:59.558015Z","iopub.status.idle":"2024-08-01T03:41:59.617558Z","shell.execute_reply.started":"2024-08-01T03:41:59.557967Z","shell.execute_reply":"2024-08-01T03:41:59.616092Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# se podría decir que solo esta linea de codigo nos interesa\nmon_fil = flood_filter(gid = gid, data_type = \"monthly\")\n\nplot1 = px.area(mon_fil, template = \"plotly_dark\", color_discrete_sequence = ['blue'])\n\nplot1.update_layout(\n title = f\"Hidrograma \",\n xaxis_title = \"Fecha (dias)\",\n yaxis_title = \"Caudal (m³/s)\"\n)\n\nplot1.update_xaxes(showgrid = False)\n\nplot1.show()","metadata":{"execution":{"iopub.status.busy":"2024-08-01T03:41:59.619465Z","iopub.execute_input":"2024-08-01T03:41:59.619895Z","iopub.status.idle":"2024-08-01T03:41:59.831577Z","shell.execute_reply.started":"2024-08-01T03:41:59.619858Z","shell.execute_reply":"2024-08-01T03:41:59.830278Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"mon_fil.to_csv(\"cuadal_mensual.csv\")","metadata":{"execution":{"iopub.status.busy":"2024-08-01T03:41:59.833394Z","iopub.execute_input":"2024-08-01T03:41:59.833777Z","iopub.status.idle":"2024-08-01T03:41:59.844742Z","shell.execute_reply.started":"2024-08-01T03:41:59.833744Z","shell.execute_reply":"2024-08-01T03:41:59.843489Z"},"trusted":true},"execution_count":null,"outputs":[]}]}