From bfd136de4872d6f4d4452622ff413c7649ea37f6 Mon Sep 17 00:00:00 2001 From: Ken <62271587+kennethliporada@users.noreply.github.com> Date: Thu, 8 Feb 2024 13:02:15 +0800 Subject: [PATCH] feat(4as): exposure assessment data summary and additional feature in UI (#354) * remove 24hour lapse contour * feat(4as): create base component for risk/exposure assessment feature (#341) * update noah-playground-store to contain risk assessment state * add risk assessment group component * delete laguna solo component * update service to accommodate risk assessment setters and getters * add risk assessment solo component * display risk assessment in studio * add risk assessment modal component * add content for risk assessment modal * expand risk assessment component * add service for risk assessment and rename modal service * feat(4as-modal): popup modal when calculate risk button is clicked (#340) * feat(4as): add data in modal risk assessment (#342) * add risk assessment service * display data in risk modal * change table layout * add x button to close modal * update modal service * feat(4as): display population affected in map and list of affected population in modal (#346) * Cannot click button calculate risk if either rain or population is not selected * button for hide modal * hide modal and show the risk assessment button * modal close button also remove risk assessment button hide button to show risk assessment button * hide button risk assessment when uncheck the risk assessment sidebar * added data for affected population * add search for affected population * add sort in risk assessment * data summary modal ui --------- Co-authored-by: kennethliporada <62271587+kennethliporada@users.noreply.github.com> * change to list of province * feat(4as): 4as modal, affected population display, legend and pagination (#347) * putting comma for 4as data summaryt * hide/show affected population and hide data summary button * close modal and hide affected population as well * added svg to close and minimize button * adjust font text for modal header * table header display when scrolling down * example data for the 4as modal table * affected population data with psgc * added legend for rainforcast and exposure * remove console log * edited legend for rain forecast and exposure population * exposure population legend * added a value for affected population VAR 1 * displaying data from ngrok and pagination * display number data in pagination * all search for the data * toggle legend for exposure population * changing legend Risk to Population * added rainforcast with function in checkbox toggle * rain forecast legend text bigger * population exposure legend title edited * pagination for modal data summary 4as * changing url for rain forecast * Calculate risk font size bigger * no data available in table font bigger * for presentation: disclaimer not for prod, problem: mobile view UI * no available affected data when there is no affected * fix pagination button and size of the table * inserted beta to the risk assessment sidebar * remove Data summary button and replace it to the map component * replace 4as data summary button to the map component * remain checked when sidebar is toggle * created a function to stay checked the checkbox population * added a boolean shown to population checkbox * fix bug about the checkbox population * added a function for the calculate risk button * fix bug for the checkboxes * opacity for the rainforecast * added a opacity to the population affected * remove the word available and border on summary * remove the word available and border on summary (#349) * changing color blink on beta * changed based url * adjust text in ra summary dashboard * fix(4as): Change UI/UX of 4As feature and summary dashboard (#350) * sir mahar changes * checkbox Rain = true to perform the enabled and disabled button * change opacity * disclaimer in the bottom * fix expanded feature for exposure assessment * exposure assessment sidebar expand and check at the same time (#351) --------- Co-authored-by: Ken <62271587+kennethliporada@users.noreply.github.com> * feat(4as): disclaimer IoT and 4as responsive, also the bug when search (#352) * IoT logo in disclaimer resize in mobile view * disclaimer for 4as * bug when search location and then no data appear * fixed bug when search not in the list and became no data * fix(4as): change legend for rain forecast and population and adjust whitespace in mobile view (#353) * legend for rain and population * adjust white space in menu bottom mobile view * Update CHANGELOG.md * Update CHANGELOG.md * Update CHANGELOG.md * align logos and paraphrase the text content and insert disclaimer * added a date text in 4as summary modal * when no search display search and when no data display no forecast * download archive data * edited logos * edited some dropdown and services * fix alert text * clean code for noah playground * deleted some text issue * edit class text --------- Co-authored-by: bon-carpo Co-authored-by: bon-carpo <76890692+bon-carpo@users.noreply.github.com> Co-authored-by: upri --- .../risk-assessment-modal.component.html | 140 +++++++++++++----- .../risk-assessment-modal.component.ts | 60 +++++++- .../services/risk-assessment.service.ts | 11 ++ .../components/alert/alert.component.html | 82 ++++++---- src/assets/images/4as.png | Bin 0 -> 21706 bytes src/assets/images/wm-logo.jpg | Bin 0 -> 4939 bytes .../legends/rainfall-forecast-legend.png | Bin 9148 -> 6011 bytes 7 files changed, 223 insertions(+), 70 deletions(-) create mode 100644 src/assets/images/4as.png create mode 100644 src/assets/images/wm-logo.jpg diff --git a/src/app/features/noah-playground/components/risk-assessment-modal/risk-assessment-modal.component.html b/src/app/features/noah-playground/components/risk-assessment-modal/risk-assessment-modal.component.html index 0ebc1d6e..ef3e659d 100644 --- a/src/app/features/noah-playground/components/risk-assessment-modal/risk-assessment-modal.component.html +++ b/src/app/features/noah-playground/components/risk-assessment-modal/risk-assessment-modal.component.html @@ -127,6 +127,9 @@ In a large flood event, how many people might be affected and would need evacuation?

+
+ As of {{ dateDataText }} +
@@ -179,9 +182,11 @@ dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500 + disabled:cursor-not-allowed " placeholder="Search Location" (input)="loadData(1, searchValue)" + [disabled]="errorMsg" /> @@ -225,6 +230,39 @@ + +
+
+
+
+

+ No result +

+
+
+
+
+
- + +

- Disclaimer: The streams and catchment boundaries presented are - indicative. They have been derived from elevation data obtained using - Interferometric Synthetic Aperture Radar (IfSAR) topography and - delineated using ArcGIS Hydrological Tools. - - Read more... - - - The UP NOAH Center holds no responsibility or liability for any - inconsistencies, inaccuracies, or data omissions related to - predicted or depicted weather forecasts, whether reported, ongoing, - or occurred, for both parties and non-parties alike. The UP NOAH - Center does not provide any explicit or implied warranties, - guarantees, or assurances regarding the occurrence or confirmation - of weather information, as presented in forecasts, graphics, data, - or any information included on the site. However, suggestions for - improvement or error notifications are welcome. Please follow the - official sites of the government and use this site only for - supplementary information. - + Access Data Archive : Click the link to download previous + forecast data.

+
+ +
+ + + + +
+
diff --git a/src/app/features/noah-playground/components/risk-assessment-modal/risk-assessment-modal.component.ts b/src/app/features/noah-playground/components/risk-assessment-modal/risk-assessment-modal.component.ts index a63559c0..10b7024b 100644 --- a/src/app/features/noah-playground/components/risk-assessment-modal/risk-assessment-modal.component.ts +++ b/src/app/features/noah-playground/components/risk-assessment-modal/risk-assessment-modal.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, EventEmitter, OnInit } from '@angular/core'; import { AffectedData, RiskAssessmentService, @@ -24,8 +24,14 @@ export class RiskAssessmentModalComponent implements OnInit { totalItems = 0; totalDataCount = 0; errorMsg: boolean = false; + noResult: boolean = false; mobileDisclaimer: boolean = false; btnReadMore: boolean = true; + dateDataText: string; + + archieveDateTime: string; + archieveDownload: string; + dropdown: string[] = []; constructor( private riskAssessment: RiskAssessmentService, @@ -68,10 +74,51 @@ export class RiskAssessmentModalComponent implements OnInit { this.modalServices.riskModal$.subscribe((riskModal) => { this.riskModal = riskModal; }); - this.loadData(this.currentPage); + this.loadDateText(); + this.archiveData(); } + async downloadData(selectedDate: string) { + const response: any = await this.riskAssessment + .archiveData() + .pipe(first()) + .toPromise(); + if (response && response.results) { + const selectedResult = response.results.find( + (result: any) => result.datetime === selectedDate + ); + + if (selectedResult && selectedResult.s3_link) { + window.open(selectedResult.s3_link, '_blank'); + } else { + console.error('Selected date not found or missing s3_link'); + } + } + } + + onDateSelected(event: any) { + const selectedDate = event.target.value; + if (selectedDate !== 'select-date') { + this.downloadData(selectedDate); + } + } + async archiveData() { + const response: any = await this.riskAssessment + .archiveData() + .pipe(first()) + .toPromise(); + if (response && response.results) { + const datetimes = response.results.map((result: any) => result.datetime); + this.dropdown = datetimes; + } + } + + loadDateText(): void { + this.riskAssessment.getDateText().subscribe((data: string) => { + this.dateDataText = data; + }); + } async loadData(page: number, searchTerm?: string) { try { const response: any = await this.riskAssessment @@ -79,9 +126,14 @@ export class RiskAssessmentModalComponent implements OnInit { .pipe(first()) .toPromise(); - if (response.results.length === 0) { + if (searchTerm && response.results.length === 0) { + this.affectedData = []; + this.errorMsg = false; + this.noResult = true; + } else if (response.results.length === 0) { this.affectedData = []; this.errorMsg = true; + this.noResult = false; } else { const raData = response.results.map((a) => { return { @@ -98,11 +150,13 @@ export class RiskAssessmentModalComponent implements OnInit { this.affectedData = raData; this.totalDataCount = response.count; this.errorMsg = false; + this.noResult = false; } } catch (error) { console.error('An error occurred:', error); this.affectedData = []; this.errorMsg = true; + this.noResult = false; } } diff --git a/src/app/features/noah-playground/services/risk-assessment.service.ts b/src/app/features/noah-playground/services/risk-assessment.service.ts index b08eb904..eba6d7c6 100644 --- a/src/app/features/noah-playground/services/risk-assessment.service.ts +++ b/src/app/features/noah-playground/services/risk-assessment.service.ts @@ -21,6 +21,7 @@ export class RiskAssessmentService { private nextPageUrl: string | null = null; private previousPageUrl: string | null = null; private defaultUrl: string = `${this.API_BASE_URL}/affected_brgy/?affected=yes`; + private S3_BASE_URL = 'https://upri-noah.s3.ap-southeast-1.amazonaws.com'; // Track the search term private currentSearchTerm: string | null = null; @@ -51,4 +52,14 @@ export class RiskAssessmentService { }) ); } + + getDateText(): Observable { + return this.http.get(`${this.S3_BASE_URL}/rainfall/datetime.txt`, { + responseType: 'text', + }); + } + + archiveData(): Observable { + return this.http.get(`${this.API_BASE_URL}/api/latest-results/`); + } } diff --git a/src/app/shared/components/alert/alert.component.html b/src/app/shared/components/alert/alert.component.html index 78549ae5..8cc9cc9e 100644 --- a/src/app/shared/components/alert/alert.component.html +++ b/src/app/shared/components/alert/alert.component.html @@ -425,8 +425,8 @@ > usaid-logo @@ -443,8 +443,8 @@ > tufts-logo @@ -460,16 +460,16 @@ " > upri logo -
+
@@ -498,9 +498,9 @@ " > noah_logo @@ -535,13 +535,20 @@ lg:w-full " > - The Exposure Assessment feature, a collaboration within the - Academic Alliance for Anticipatory Action (4As) consortium with - UP Resilience Institute (UPRI) and Institute of Environmental - Science/Weather Manila as key partners, is led by Tufts - University and supported by the United States Agency for - International Development's Bureau for Humanitarian Assistance - (USAID/BHA). + The Exposure Assessment tab is an Impact-Based Flood Forecasting + System developed by the UP Resilience Institute NOAH-Center and + Weather Manila, in collaboration with the Academic Alliance for + Anticipatory Action (4As) and was funded by the United States + Agency for International Development's Bureau for Humanitarian + Assistance (USAID/BHA). The Impact-Based Flood Forecasting + System allows users to determine how many people per barangay + will be affected by a large flood event, 24 hours from the + timestamp of the displayed rain forecast. The results can be + viewed in tabular format where specific information can be + searched. Users can also visualize the affected population in + map view. If there is no rain forecast for the next 24 hours, + there will be no flood exposure information that will be + displayed.

- Currently in beta mode, ongoing enhancements and validations are - part of the project's development. It is essential to note that - the UP NOAH Center, as part of this initiative, does not offer + Disclaimer: The streams, catchment and administrative + boundaries used in the Impact-Based Flood Forecasting System are + indicative. The UP NOAH Center holds no responsibility or + liability for any inconsistencies, inaccuracies, or data + omissions related to predicted or depicted weather forecasts, + whether reported, ongoing, or occurred, for both parties and + non-parties alike. The UP NOAH Center does not provide any explicit or implied warranties, guarantees, or assurances regarding the occurrence or confirmation of weather information, - including forecasts, graphics, data, or any information - presented on the site. Users are advised to be aware of the - project's evolving nature. + as presented in forecasts, graphics, data, or any information + included on the site. However, suggestions for improvement or + error notifications are welcome. Please follow the official + sites of the government and use this site only for supplementary + information.

+
+ +
diff --git a/src/assets/images/4as.png b/src/assets/images/4as.png new file mode 100644 index 0000000000000000000000000000000000000000..30211f9742ca602ca8299bfebf3420ad8a7b6531 GIT binary patch literal 21706 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/wm-logo.jpg b/src/assets/images/wm-logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a7f58af4223a42084cd7e4249fafac7dc3c0f547 GIT binary patch literal 4939 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 IZ1{=)08j+>M*si- literal 0 HcmV?d00001 diff --git a/src/assets/legends/rainfall-forecast-legend.png b/src/assets/legends/rainfall-forecast-legend.png index 71ef644e25c94deaf097a39a4e642fc1fe260a82..c9f335d3effb0101c777e2cb410e3aeb21f1e144 100644 GIT binary patch delta 5436 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 literal 9148 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