diff --git a/.github/workflows/deploy-with-password.yml b/.github/workflows/deploy-with-password.yml
new file mode 100644
index 0000000..28f6eff
--- /dev/null
+++ b/.github/workflows/deploy-with-password.yml
@@ -0,0 +1,36 @@
+name: Deploy Quarto Site with Password Protection
+
+on:
+ push:
+ branches:
+ - main
+ workflow_dispatch:
+
+jobs:
+ build-and-deploy:
+ runs-on: ubuntu-latest
+ permissions:
+ contents: write
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Setup Quarto
+ uses: quarto-dev/quarto-actions/setup@v2
+
+ - name: Render Quarto site
+ run: quarto render
+
+ - name: Inject password into login page
+ run: |
+ # Replace {{SITE_PASSWORD}} with actual password from GitHub secret
+ sed -i "s/{{SITE_PASSWORD}}/${{ secrets.SITE_PASSWORD }}/g" _site/password-protect.html
+ env:
+ SITE_PASSWORD: ${{ secrets.SITE_PASSWORD }}
+
+ - name: Deploy to GitHub Pages
+ uses: peaceiris/actions-gh-pages@v3
+ with:
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ publish_dir: ./_site
+ publish_branch: gh-pages
diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml
index 70e9050..2a06e30 100644
--- a/.github/workflows/preview.yml
+++ b/.github/workflows/preview.yml
@@ -26,6 +26,27 @@ jobs:
- run: pip install -r requirements.txt
- run: quarto render --to html
+ - name: Verify auth script is present in rendered HTML
+ run: |
+ if grep -q "disasters_docs_auth" _site/index.html; then
+ echo "✓ Authentication script found in rendered HTML"
+ else
+ echo "✗ ERROR: Authentication script not found in rendered HTML"
+ exit 1
+ fi
+
+ - name: Inject password into login page
+ run: |
+ # Replace {{SITE_PASSWORD}} with actual password from GitHub secret
+ if [ -f "_site/password-protect.html" ]; then
+ sed -i "s/{{SITE_PASSWORD}}/${{ secrets.SITE_PASSWORD }}/g" _site/password-protect.html
+ echo "Password injected successfully"
+ else
+ echo "Warning: password-protect.html not found"
+ fi
+ env:
+ SITE_PASSWORD: ${{ secrets.SITE_PASSWORD }}
+
- name: Deploy preview
uses: rossjrw/pr-preview-action@v1
with:
diff --git a/.github/workflows/quarto-publish.yml b/.github/workflows/quarto-publish.yml
index 49dd1cb..834c1a3 100644
--- a/.github/workflows/quarto-publish.yml
+++ b/.github/workflows/quarto-publish.yml
@@ -2,6 +2,7 @@ on:
push:
branches:
- main
+ workflow_dispatch:
permissions: write-all
@@ -28,6 +29,27 @@ jobs:
- run: pip install -r requirements.txt
- run: quarto render --to html
+ - name: Verify auth script is present in rendered HTML
+ run: |
+ if grep -q "disasters_docs_auth" _site/index.html; then
+ echo "✓ Authentication script found in rendered HTML"
+ else
+ echo "✗ ERROR: Authentication script not found in rendered HTML"
+ exit 1
+ fi
+
+ - name: Inject password into login page
+ run: |
+ # Replace {{SITE_PASSWORD}} with actual password from GitHub secret
+ if [ -f "_site/password-protect.html" ]; then
+ sed -i "s/{{SITE_PASSWORD}}/${{ secrets.SITE_PASSWORD }}/g" _site/password-protect.html
+ echo "Password injected successfully"
+ else
+ echo "Warning: password-protect.html not found"
+ fi
+ env:
+ SITE_PASSWORD: ${{ secrets.SITE_PASSWORD }}
+
- name: Publish to GitHub Pages (and render)
uses: quarto-dev/quarto-actions/publish@v2
with:
diff --git a/SIMPLE_PASSWORD_SETUP.md b/SIMPLE_PASSWORD_SETUP.md
new file mode 100644
index 0000000..0241e2c
--- /dev/null
+++ b/SIMPLE_PASSWORD_SETUP.md
@@ -0,0 +1,127 @@
+# Simple Password Protection Setup
+
+This setup uses a GitHub secret to password-protect your documentation site.
+
+## Setup Steps (5 minutes)
+
+### Step 1: Add Password to GitHub Secrets
+
+1. Go to your GitHub repository: `https://github.com/Disasters-Learning-Portal/disasters-docs`
+2. Click **Settings** (top menu)
+3. Click **Secrets and variables** → **Actions** (left sidebar)
+4. Click **New repository secret**
+5. Enter:
+ - **Name:** `SITE_PASSWORD`
+ - **Secret:** Your desired password (e.g., `DisastersPortal2024`)
+6. Click **Add secret**
+
+### Step 2: Enable GitHub Actions
+
+Make sure GitHub Actions is enabled:
+1. Go to **Settings** → **Actions** → **General**
+2. Ensure "Allow all actions and reusable workflows" is selected
+
+### Step 3: Commit and Push
+
+```bash
+git add .
+git commit -m "Add password protection"
+git push
+```
+
+The GitHub Action will automatically:
+- Build your Quarto site
+- Inject the password from the secret into the login page
+- Deploy to GitHub Pages
+
+### Step 4: Test
+
+1. Wait 2-3 minutes for GitHub Actions to complete
+2. Visit: `https://disasters-learning-portal.github.io/disasters-docs/password-protect.html`
+3. Enter your password
+4. You should be redirected to the documentation
+
+## How It Works
+
+1. **GitHub Secret:** Password stored securely in `SITE_PASSWORD` secret
+2. **GitHub Actions:** Workflow injects password during build
+3. **Login Page:** `password-protect.html` checks entered password
+4. **Session:** Authenticated for 8 hours via localStorage
+5. **All Pages:** `auth-check.js` verifies authentication
+
+## Making the Login Page Default
+
+To make users see the login page first, you have two options:
+
+### Option A: Rename in GitHub Pages settings
+
+1. After deployment, go to **Settings** → **Pages**
+2. GitHub Pages should show `password-protect.html` as an option
+3. Or add a redirect in your main `index.html`
+
+### Option B: Add redirect to index.qmd
+
+Add this to the top of your [index.qmd](index.qmd):
+
+```html
+
+```
+
+Or add JavaScript redirect in [_quarto.yml](_quarto.yml):
+
+```yaml
+format:
+ html:
+ include-before-body:
+ - text: |
+
+```
+
+## Changing the Password
+
+1. Go to GitHub **Settings** → **Secrets and variables** → **Actions**
+2. Click on `SITE_PASSWORD`
+3. Click **Update secret**
+4. Enter new password
+5. Re-run the GitHub Action or push a new commit
+
+## Files Created
+
+- `password-protect.html` - Login page
+- `auth-check.js` - Authentication check on all pages
+- `.github/workflows/deploy-with-password.yml` - GitHub Actions workflow
+- `_quarto.yml` - Updated to include auth-check.js
+
+## Security Notes
+
+⚠️ **This is client-side protection** - password is visible in browser source after deployment. Good for:
+- Internal documentation
+- Preventing casual access
+- Simple team authentication
+
+❌ **NOT suitable for:**
+- Highly sensitive data
+- Public-facing secure content
+- Compliance requirements
+
+For real security, you'd need server-side authentication (like the CloudFront + Keycloak approach).
+
+## Troubleshooting
+
+**Q: Password doesn't work**
+- Check the `SITE_PASSWORD` secret is set correctly in GitHub
+- Re-run the GitHub Action to rebuild the site
+
+**Q: Can still access pages without login**
+- Clear browser localStorage: `localStorage.clear()`
+- Make sure `auth-check.js` is being loaded (check _quarto.yml)
+- Hard refresh browser (Ctrl+Shift+R or Cmd+Shift+R)
+
+**Q: GitHub Action fails**
+- Check the Actions tab for error details
+- Make sure `SITE_PASSWORD` secret exists
+- Verify the workflow file is in `.github/workflows/`
diff --git a/_quarto.yml b/_quarto.yml
index 362443e..bd48342 100644
--- a/_quarto.yml
+++ b/_quarto.yml
@@ -1,5 +1,8 @@
project:
type: website
+ resources:
+ - password-protect.html
+ - auth-check.js
website:
page-navigation: true
@@ -81,95 +84,13 @@ website:
href: Presentations/jupyterhub-data-conversions-tutorial.qmd
- text: "STAC Database and Apache Airflow Tutorial"
href: Presentations/stac-airflow-tutorial.qmd
- # - href: datausage.qmd
- # text: Data Usage Notebooks
- # - href: datatransformation.qmd
- # text: Data Transformation Documentation
- # - href: processingreport.qmd
- # text: Processing and Verification Reports
- # - href: workflow.qmd
- # text: Data Workflow
- # - href: advanceduser.qmd
- # text: Advanced User Notebooks
- section: datausage.qmd
- text: Data Usage Notebooks
+ text: Disaster Case Studies
contents:
- - section: Disaster Case Studies
- contents:
- - text: "Texas Flood 2025"
- href: user_data_notebooks/Texas_Flood_2025.ipynb
- - text: "New Mexico Fire 2025"
- href: user_data_notebooks/New_Mexico_Fire_2025.ipynb
- - section: Community-Contributed Tutorials
- contents:
- - section: datatransformationcode.qmd
- text: Data Transformation Notebooks
- contents:
- - cog_transformation/eccodarwin-co2flux-monthgrid-v5.ipynb
- - text: Atmospheric Carbon Dioxide and Methane Concentrations from the NOAA Global Monitoring Laboratory
- href: cog_transformation/noaa-gggrn-concentrations.ipynb
- - cog_transformation/influx-testbed-ghg-concentrations.ipynb
- - cog_transformation/lam-testbed-ghg-concentrations.ipynb
- - cog_transformation/nec-testbed-ghg-concentrations.ipynb
- - cog_transformation/ct-ch4-monthgrid-v2023.ipynb
- - cog_transformation/emit-ch4plume-v1.ipynb
- - cog_transformation/goes-ch4plume-v1.ipynb
- - cog_transformation/gosat-based-ch4budget-yeargrid-v1.ipynb
- - cog_transformation/gra2pes-ghg-monthgrid-v1.ipynb
- - cog_transformation/oco2geos-co2-daygrid-v10r.ipynb
- - cog_transformation/oco2-mip-co2budget-yeargrid-v1.ipynb
- - cog_transformation/odiac-ffco2-monthgrid-v2024.ipynb
- - text: "SEDAC Gridded World Population Density"
- href: cog_transformation/sedac-popdensity-yeargrid5yr-v4.11.ipynb
- - cog_transformation/epa-ch4emission-grid-v2express.ipynb
- - cog_transformation/vulcan-ffco2-yeargrid-v4.ipynb
- - section: processingreport.qmd
- text: Processing and Verification Reports
- contents:
- - processing_and_verification_reports/eccodarwin-co2flux-monthgrid-v5_Processing and Verification Report.qmd
- - text: "Atmospheric Carbon Dioxide Concentrations from the NOAA Global Monitoring Laboratory"
- href: processing_and_verification_reports/noaa-gggrn-co2-concentrations_Processing and Verification Report.qmd
- - processing_and_verification_reports/noaa-gggrn-ch4-concentrations_Processing and Verification Report.qmd
- - processing_and_verification_reports/influx-testbed-ghg-concentrations_Processing and Verification Report.qmd
- - processing_and_verification_reports/lam-testbed-ghg-concentrations_Processing and Verification Report.qmd
- - processing_and_verification_reports/nec-testbed-ghg-concentrations_Processing and Verification Report.qmd
- - processing_and_verification_reports/ct-ch4-monthgrid-v2023_Processing and Verification Report.qmd
- - processing_and_verification_reports/emit-ch4plume-v1_Processing and Verification Report.qmd
- - processing_and_verification_reports/goes-ch4plume-v1_Processing and Verification Report.qmd
- - processing_and_verification_reports/gosat-based-ch4budget-yeargrid-v1_Processing and Verification Report.qmd
- - processing_and_verification_reports/gra2pes-ghg-monthgrid-v1_Processing and Verification Report.qmd
- - processing_and_verification_reports/micasa-carbonflux-daygrid-v1_Processing and Verification Report.qmd
- - processing_and_verification_reports/oco2geos-co2-daygrid-v10r_Processing and Verification Report.qmd
- - processing_and_verification_reports/oco2-mip-co2budget-yeargrid-v1_Processing and Verification Report.qmd
- - processing_and_verification_reports/odiac-ffco2-monthgrid-v2024_Processing and Verification Report.qmd
- - processing_and_verification_reports/sedac-popdensity-yeargrid5yr-v4.11_Processing and Verification Report.qmd
- - processing_and_verification_reports/epa-ch4emission-grid-v2express_Processing and Verification Report.qmd
- - processing_and_verification_reports/vulcan-ffco2-yeargrid-v4_Processing and Verification Report.qmd
- - processing_and_verification_reports/lpjeosim-wetlandch4-grid-v1_Processing and Verification Report.qmd
- - section: workflow.qmd
- text: Data Flow Diagrams
- contents:
- - data_workflow/eccodarwin-co2flux-monthgrid-v5_Data_Flow.qmd
- - data_workflow/noaa-gggrn-co2-concentrations_Data_Flow.qmd
- - data_workflow/noaa-gggrn-ch4-concentrations_Data_Flow.qmd
- - data_workflow/influx-testbed-ghg-concentrations_Data_Flow.qmd
- - data_workflow/lam-testbed-ghg-concentrations_Data_Flow.qmd
- - data_workflow/nec-testbed-ghg-concentrations_Data_Flow.qmd
- - data_workflow/ct-ch4-monthgrid-v2023_Data_Flow.qmd
- - data_workflow/emit-ch4plume-v1_Data_Flow.qmd
- - data_workflow/goes-ch4plume-v1_Data_Flow.qmd
- - data_workflow/gosat-based-ch4budget-yeargrid-v1_Data_Flow.qmd
- - data_workflow/gra2pes-ghg-monthgrid-v1_Data_Flow.qmd
- - data_workflow/micasa-carbonflux-daygrid-v1_Data_Flow.qmd
- - data_workflow/oco2geos-co2-daygrid-v10r_Data_Flow.qmd
- - data_workflow/oco2-mip-co2budget-yeargrid-v1_Data_Flow.qmd
- - data_workflow/odiac-ffco2-monthgrid-v2024_Data_Flow.qmd
- - text: "SEDAC Gridded World Population Density"
- href: data_workflow/sedac-popdensity-yeargrid5yr-v4.11_Data_Flow.qmd
- - text: "U.S. Gridded Anthropogenic Methane Emissions Inventory"
- href: data_workflow/epa-ch4emission-grid-v2express_Data_Flow.qmd
- - data_workflow/vulcan-ffco2-yeargrid-v4_Data_Flow.qmd
- - data_workflow/lpjeosim-wetlandch4-grid-v1_Data_Flow.qmd
+ - text: "Texas Flood 2025"
+ href: user_data_notebooks/Texas_Flood_2025.ipynb
+ - text: "New Mexico Fire 2025"
+ href: user_data_notebooks/New_Mexico_Fire_2025.ipynb
format:
html:
@@ -184,5 +105,93 @@ format:
code-overflow: wrap
toc: true
toc-depth: 3
+ include-in-header:
+ - text: |
+
filters:
- quarto
diff --git a/_site/_quarto.yml b/_site/_quarto.yml
new file mode 100644
index 0000000..aeebefa
--- /dev/null
+++ b/_site/_quarto.yml
@@ -0,0 +1,194 @@
+project:
+ type: website
+ resources:
+ - password-protect.html
+ - auth-check.js
+
+website:
+ page-navigation: true
+ back-to-top-navigation: true
+ title: "NASA Disasters Documentation"
+ site-url: "https://us-ghg-center.github.io/ghgc-docs" #should I change these
+ repo-url: https://github.com/us-ghg-center/ghgc-docs
+ repo-actions: [edit, issue]
+
+ page-footer:
+ right: "This page is built with [Quarto](https://quarto.org/)."
+ left: "© CC-By US GHG Center, 2022-2023" #how should I change this
+
+ sidebar:
+ logo: "logo/disasters_logo.png"
+ pinned: true
+ align: center
+ tools:
+ # - icon: info-circle
+ # href: https://www.earthdata.nasa.gov/esds/veda
+ # text: "earthdata.nasa.gov/esds/veda"
+ - icon: globe-americas
+ href: https://disasters.openveda.cloud/
+ text: "NASA Disasters Portal"
+ - icon: github
+ href: https://github.com/Disasters-Learning-Portal
+ text: "Repository home"
+
+ style: "docked"
+ search: true
+ collapse-level: 1
+ contents:
+ - href: index.qmd
+ text: Welcome
+ - section: aws.qmd
+ text: AWS
+ contents:
+ - AWS/AWS_SSO_Setup_Guide.qmd
+ - AWS/AWS_SSO_Remote_Server.qmd
+ - AWS/aws-mfa-setup.qmd
+ - AWS/aws-s3-commands-guide.qmd
+ - section: git-github-comprehensive-guide.qmd
+ text: GitHub
+ contents:
+ - text: "The VEDA Project"
+ href: GitHub/veda-preview.qmd
+ - GitHub/setup.qmd
+ - GitHub/commands.qmd
+ - GitHub/resources.qmd
+ - section: jupyterhub.qmd
+ text: JupyterHub
+ contents:
+ - Jupyterhub/jupyterhub-training-guide.qmd
+ - Jupyterhub/setup-disaster-repo.qmd
+ - Jupyterhub/convert_to_geotiff.qmd
+ - Jupyterhub/simple_disaster_template.ipynb
+ - section: workflow2.qmd
+ text: Data Workflow Diagrams
+ contents:
+ - data_workflow2/NRT_data_download.qmd
+ - data_workflow2/NRT_directory_structure.qmd
+ - section: Documentation
+ contents:
+ - text: "Quarto Guide for Beginners"
+ href: quarto-guide.qmd
+ - section: User Services
+ contents:
+ - services/apis.qmd
+ - services/jupyterhub.qmd
+ - section: Presentations
+ contents:
+ - section: PowerPoints
+ contents:
+ - text: "Disasters Logo and Template Overview"
+ href: Presentations/disasters-powerpoint-template.qmd
+ - text: "AWS and Grafana Monitoring Tutorial"
+ href: Presentations/aws-grafana-tutorial.qmd
+ - text: "JupyterHub and Data Conversions Tutorial"
+ href: Presentations/jupyterhub-data-conversions-tutorial.qmd
+ - text: "STAC Database and Apache Airflow Tutorial"
+ href: Presentations/stac-airflow-tutorial.qmd
+ # - href: datausage.qmd
+ # text: Data Usage Notebooks
+ # - href: datatransformation.qmd
+ # text: Data Transformation Documentation
+ # - href: processingreport.qmd
+ # text: Processing and Verification Reports
+ # - href: workflow.qmd
+ # text: Data Workflow
+ # - href: advanceduser.qmd
+ # text: Advanced User Notebooks
+ - section: datausage.qmd
+ text: Data Usage Notebooks
+ contents:
+ - section: Disaster Case Studies
+ contents:
+ - text: "Texas Flood 2025"
+ href: user_data_notebooks/Texas_Flood_2025.ipynb
+ - text: "New Mexico Fire 2025"
+ href: user_data_notebooks/New_Mexico_Fire_2025.ipynb
+ - section: Community-Contributed Tutorials
+ contents:
+ - section: datatransformationcode.qmd
+ text: Data Transformation Notebooks
+ contents:
+ - cog_transformation/eccodarwin-co2flux-monthgrid-v5.ipynb
+ - text: Atmospheric Carbon Dioxide and Methane Concentrations from the NOAA Global Monitoring Laboratory
+ href: cog_transformation/noaa-gggrn-concentrations.ipynb
+ - cog_transformation/influx-testbed-ghg-concentrations.ipynb
+ - cog_transformation/lam-testbed-ghg-concentrations.ipynb
+ - cog_transformation/nec-testbed-ghg-concentrations.ipynb
+ - cog_transformation/ct-ch4-monthgrid-v2023.ipynb
+ - cog_transformation/emit-ch4plume-v1.ipynb
+ - cog_transformation/goes-ch4plume-v1.ipynb
+ - cog_transformation/gosat-based-ch4budget-yeargrid-v1.ipynb
+ - cog_transformation/gra2pes-ghg-monthgrid-v1.ipynb
+ - cog_transformation/oco2geos-co2-daygrid-v10r.ipynb
+ - cog_transformation/oco2-mip-co2budget-yeargrid-v1.ipynb
+ - cog_transformation/odiac-ffco2-monthgrid-v2024.ipynb
+ - text: "SEDAC Gridded World Population Density"
+ href: cog_transformation/sedac-popdensity-yeargrid5yr-v4.11.ipynb
+ - cog_transformation/epa-ch4emission-grid-v2express.ipynb
+ - cog_transformation/vulcan-ffco2-yeargrid-v4.ipynb
+ - section: processingreport.qmd
+ text: Processing and Verification Reports
+ contents:
+ - processing_and_verification_reports/eccodarwin-co2flux-monthgrid-v5_Processing and Verification Report.qmd
+ - text: "Atmospheric Carbon Dioxide Concentrations from the NOAA Global Monitoring Laboratory"
+ href: processing_and_verification_reports/noaa-gggrn-co2-concentrations_Processing and Verification Report.qmd
+ - processing_and_verification_reports/noaa-gggrn-ch4-concentrations_Processing and Verification Report.qmd
+ - processing_and_verification_reports/influx-testbed-ghg-concentrations_Processing and Verification Report.qmd
+ - processing_and_verification_reports/lam-testbed-ghg-concentrations_Processing and Verification Report.qmd
+ - processing_and_verification_reports/nec-testbed-ghg-concentrations_Processing and Verification Report.qmd
+ - processing_and_verification_reports/ct-ch4-monthgrid-v2023_Processing and Verification Report.qmd
+ - processing_and_verification_reports/emit-ch4plume-v1_Processing and Verification Report.qmd
+ - processing_and_verification_reports/goes-ch4plume-v1_Processing and Verification Report.qmd
+ - processing_and_verification_reports/gosat-based-ch4budget-yeargrid-v1_Processing and Verification Report.qmd
+ - processing_and_verification_reports/gra2pes-ghg-monthgrid-v1_Processing and Verification Report.qmd
+ - processing_and_verification_reports/micasa-carbonflux-daygrid-v1_Processing and Verification Report.qmd
+ - processing_and_verification_reports/oco2geos-co2-daygrid-v10r_Processing and Verification Report.qmd
+ - processing_and_verification_reports/oco2-mip-co2budget-yeargrid-v1_Processing and Verification Report.qmd
+ - processing_and_verification_reports/odiac-ffco2-monthgrid-v2024_Processing and Verification Report.qmd
+ - processing_and_verification_reports/sedac-popdensity-yeargrid5yr-v4.11_Processing and Verification Report.qmd
+ - processing_and_verification_reports/epa-ch4emission-grid-v2express_Processing and Verification Report.qmd
+ - processing_and_verification_reports/vulcan-ffco2-yeargrid-v4_Processing and Verification Report.qmd
+ - processing_and_verification_reports/lpjeosim-wetlandch4-grid-v1_Processing and Verification Report.qmd
+ - section: workflow.qmd
+ text: Data Flow Diagrams
+ contents:
+ - data_workflow/eccodarwin-co2flux-monthgrid-v5_Data_Flow.qmd
+ - data_workflow/noaa-gggrn-co2-concentrations_Data_Flow.qmd
+ - data_workflow/noaa-gggrn-ch4-concentrations_Data_Flow.qmd
+ - data_workflow/influx-testbed-ghg-concentrations_Data_Flow.qmd
+ - data_workflow/lam-testbed-ghg-concentrations_Data_Flow.qmd
+ - data_workflow/nec-testbed-ghg-concentrations_Data_Flow.qmd
+ - data_workflow/ct-ch4-monthgrid-v2023_Data_Flow.qmd
+ - data_workflow/emit-ch4plume-v1_Data_Flow.qmd
+ - data_workflow/goes-ch4plume-v1_Data_Flow.qmd
+ - data_workflow/gosat-based-ch4budget-yeargrid-v1_Data_Flow.qmd
+ - data_workflow/gra2pes-ghg-monthgrid-v1_Data_Flow.qmd
+ - data_workflow/micasa-carbonflux-daygrid-v1_Data_Flow.qmd
+ - data_workflow/oco2geos-co2-daygrid-v10r_Data_Flow.qmd
+ - data_workflow/oco2-mip-co2budget-yeargrid-v1_Data_Flow.qmd
+ - data_workflow/odiac-ffco2-monthgrid-v2024_Data_Flow.qmd
+ - text: "SEDAC Gridded World Population Density"
+ href: data_workflow/sedac-popdensity-yeargrid5yr-v4.11_Data_Flow.qmd
+ - text: "U.S. Gridded Anthropogenic Methane Emissions Inventory"
+ href: data_workflow/epa-ch4emission-grid-v2express_Data_Flow.qmd
+ - data_workflow/vulcan-ffco2-yeargrid-v4_Data_Flow.qmd
+ - data_workflow/lpjeosim-wetlandch4-grid-v1_Data_Flow.qmd
+
+format:
+ html:
+ grid:
+ sidebar-width: 25vw
+ body-width: 900px
+ theme:
+ light: [flatly]
+ dark: [darkly]
+ css: styles.css
+ code-copy: true
+ code-overflow: wrap
+ toc: true
+ toc-depth: 3
+ include-in-header:
+ - text: |
+
+filters:
+ - quarto
diff --git a/auth-check.js b/auth-check.js
new file mode 100644
index 0000000..6393e12
--- /dev/null
+++ b/auth-check.js
@@ -0,0 +1,84 @@
+// Authentication check for all pages
+(function() {
+ const SESSION_KEY = 'disasters_docs_auth';
+
+ // Get the base path for the current page
+ function getBasePath() {
+ const path = window.location.pathname;
+ // Extract base directory from current path
+ const parts = path.split('/').filter(p => p);
+ // Find the index.html or last segment
+ const fileIndex = parts.findIndex(p => p.endsWith('.html'));
+ if (fileIndex > 0) {
+ return '/' + parts.slice(0, fileIndex).join('/') + '/';
+ }
+ // Default: go to root of disasters-docs
+ return '/disasters-docs/';
+ }
+
+ function getLoginPage() {
+ const basePath = getBasePath();
+ return basePath + 'password-protect.html';
+ }
+
+ function checkAuth() {
+ // Skip authentication on localhost (for development)
+ if (window.location.hostname === 'localhost' ||
+ window.location.hostname === '127.0.0.1') {
+ console.log('Running on localhost - skipping authentication');
+ return;
+ }
+
+ // Skip check if we're on the login page
+ if (window.location.pathname.endsWith('password-protect.html') ||
+ window.location.pathname.endsWith('login.html')) {
+ return;
+ }
+
+ const auth = localStorage.getItem(SESSION_KEY);
+
+ if (!auth) {
+ // No authentication, redirect to login
+ window.location.href = getLoginPage();
+ return;
+ }
+
+ try {
+ const authData = JSON.parse(auth);
+ const now = new Date().getTime();
+
+ if (authData.expires <= now || !authData.authenticated) {
+ // Expired or invalid session
+ localStorage.removeItem(SESSION_KEY);
+ window.location.href = getLoginPage();
+ return;
+ }
+
+ // Valid session - allow page to load
+ } catch (e) {
+ // Invalid auth data
+ localStorage.removeItem(SESSION_KEY);
+ window.location.href = getLoginPage();
+ }
+ }
+
+ // Run check immediately
+ checkAuth();
+
+ // Add logout functionality
+ window.addEventListener('DOMContentLoaded', function() {
+ // Add logout button to page if it doesn't exist
+ const existingLogout = document.getElementById('logout-btn');
+ if (!existingLogout) {
+ const logoutBtn = document.createElement('button');
+ logoutBtn.id = 'logout-btn';
+ logoutBtn.textContent = 'Logout';
+ logoutBtn.style.cssText = 'position: fixed; top: 10px; right: 10px; padding: 8px 16px; background: #e74c3c; color: white; border: none; border-radius: 5px; cursor: pointer; z-index: 9999; font-size: 14px;';
+ logoutBtn.onclick = function() {
+ localStorage.removeItem(SESSION_KEY);
+ window.location.href = getLoginPage();
+ };
+ document.body.appendChild(logoutBtn);
+ }
+ });
+})();
diff --git a/datausage.qmd b/datausage.qmd
index c75db84..04fc71a 100644
--- a/datausage.qmd
+++ b/datausage.qmd
@@ -1,74 +1,29 @@
---
-title: "U.S. Greenhouse Gas Center: Data Usage Notebooks"
+title: "NASA Disasters: Case Studies"
---
-Welcome to the homepage for the [U.S. Greenhouse Gas (GHG) Center](https://earth.gov/ghgcenter) data usage notebooks. Each dataset available in the [GHG Center Data Catalog](https://earth.gov/ghgcenter/data-catalog) has an associated “Introductory notebook” created by the GHG Center team which demonstrates how to access, visualize, and conduct basic data analysis in a Jupyter Notebook environment. Additional notebooks may be provided with each dataset. Click on a dataset under “GHG Center Dataset Tutorials” to learn more about the dataset and to view the associated code notebooks.
+Welcome to the NASA Disasters Learning Portal case studies. These Jupyter notebooks demonstrate how to access, visualize, and analyze disaster-related data for real-world events. Each case study walks through data acquisition, processing, and analysis techniques relevant to disaster response and monitoring.
-Along with GHG Center-curated notebooks, science users can also contribute notebooks that use GHG Center datasets. Notebooks submitted by the scientific community can be found under the “Community-Contributed Tutorials” section.
+## Featured Case Studies
-## GHG Center Dataset Tutorials
-Tutorial notebooks created by the GHG Center team. Introductory notebooks demonstrate how to access, visualize, and conduct basic data analysis for each dataset available in the [GHG Center Data Catalog](https://earth.gov/ghgcenter/data-catalog). Notebooks demonstrating how to conduct additional or more specialized analyses may also be listed under the relevant dataset.
+These case studies showcase practical applications of satellite data and geospatial analysis for disaster monitoring and response.
-- Air-Sea CO₂ Flux, ECCO-Darwin Model v5
- - [Introductory notebook](user_data_notebooks/eccodarwin-co2flux-monthgrid-v5_User_Notebook.ipynb)
+### Texas Flood 2025
+- [View Notebook](user_data_notebooks/Texas_Flood_2025.ipynb)
+- Demonstrates flood monitoring and analysis using satellite imagery and geospatial data
+- Learn how to track water extent changes and assess flood impacts
-- Atmospheric Carbon Dioxide Concentrations from the NOAA Global Monitoring Laboratory
- - [Introductory notebook](user_data_notebooks/noaa-insitu_User_Notebook.ipynb)
+### New Mexico Fire 2025
+- [View Notebook](user_data_notebooks/New_Mexico_Fire_2025.ipynb)
+- Shows wildfire detection, monitoring, and impact assessment techniques
+- Explore methods for tracking fire progression and burn area mapping
-- Carbon Dioxide and Methane Concentrations from the Indianapolis Flux Experiment (INFLUX)
- - [Introductory notebook](user_data_notebooks/influx-testbed-ghg-concentrations_User_Notebook)
+## Contributing
-- Carbon Dioxide and Methane Concentrations from the Los Angeles Megacity Carbon Project
- - [Introductory notebook](user_data_notebooks/lam-testbed-ghg-concentrations_User_Notebook)
+The NASA Disasters Learning Portal welcomes contributions from the scientific community. If you have developed a case study using disaster-related datasets and would like to share it, please contact the team through the [NASA Disasters Portal](https://disasters.openveda.cloud/).
-- Carbon Dioxide and Methane Concentrations from the Northeast Corridor (NEC) Urban Test Bed
- - [Introductory notebook](user_data_notebooks/nec-testbed-ghg-concentrations_User_Notebook)
+## Resources
-- CarbonTracker-CH₄ Isotopic Methane Inverse Fluxes
- - [Introductory notebook](user_data_notebooks/ct-ch4-monthgrid-v2023_User_Notebook.ipynb)
-
-- EMIT Methane Point Source Plume Complexes
- - [Introductory notebook](user_data_notebooks/emit-ch4plume-v1_User_Notebook.ipynb)
-
-- Geostationary Satellite Observations of Extreme and Transient Methane Emissions from Oil and Gas Infrastructure
- - [Introductory notebook](user_data_notebooks/goes-ch4plume-v1_User_Notebook.ipynb)
-
-- GOSAT-based Top-down Total and Natural Methane Emissions
- - [Introductory notebook](user_data_notebooks/gosat-based-ch4budget-yeargrid-v1_User_Notebook.ipynb)
-
-- GRA²PES Greenhouse Gas and Air Quality Species
- - [Introductory notebook](user_data_notebooks/gra2pes-ghg-monthgrid-v1_User_Notebook.ipynb)
-
-- MiCASA Land Carbon Flux
- - [Introductory notebook](user_data_notebooks/micasa-carbonflux-daygrid-v1_User_Notebook.ipynb)
-
-- OCO-2 GEOS Column CO₂ Concentrations
- - [Introductory notebook](user_data_notebooks/oco2geos-co2-daygrid-v10r_User_Notebook.ipynb)
-
-- OCO-2 MIP Top-Down CO₂ Budgets
- - [Introductory notebook](user_data_notebooks/oco2-mip-co2budget-yeargrid-v1_User_Notebook.ipynb)
- - [Intermediate level notebook](user_data_notebooks/oco2-mip-National-co2budget.ipynb) to read and visualize National CO₂ Budgets using OCO-2 MIP Top-Down CO₂ Budget country total data. This notebook utilizes the country totals available at [https://ceos.org/gst/carbon-dioxide.html](https://ceos.org/gst/carbon-dioxide.html), which compliment the global 1° x 1° gridded CO₂ Budget data featured in the [US GHG Center](https://earth.gov/ghgcenter/data-catalog/oco2-mip-co2budget-yeargrid-v1).
-
-- ODIAC Fossil Fuel CO₂ Emissions
- - [Introductory notebook](user_data_notebooks/odiac-ffco2-monthgrid-v2024_User_Notebook.ipynb)
-
-- SEDAC Gridded World Population Density
- - [Introductory notebook](user_data_notebooks/sedac-popdensity-yeargrid5yr-v4.11_User_Notebook.ipynb)
-
-- U.S. Gridded Anthropogenic Methane Emissions Inventory
- - [Introductory notebook](user_data_notebooks/epa-ch4emission-grid-v2express_User_Notebook.ipynb)
-
-- Vulcan Fossil Fuel CO₂ Emissions
- - [Introductory notebook](user_data_notebooks/vulcan-ffco2-yeargrid-v4_User_Notebook.ipynb)
-
-- Wetland Methane Emissions, LPJ-EOSIM Model
- - [Introductory notebook](user_data_notebooks/lpjeosim-wetlandch4-grid-v1_User_Notebook.ipynb)
-
-
-## Community-Contributed Tutorials
-Notebooks provided by the scientific community that use GHG Center datasets. The GHG Center is in the process of establishing a workflow for community notebook contribution. Once available, the contribution process will be published here. In the meantime, please submit any notebook contribution inquiries through the [US GHG Center Contact Form](https://docs.google.com/forms/d/e/1FAIpQLSeVWCrnca08Gt_qoWYjTo6gnj1BEGL4NCUC9VEiQnXA02gzVQ/viewform).
-**Note**: these notebooks are contributed by the scientific community, and are not actively maintained by the GHG Center team.
-
-## Contact
-
-For technical help or general questions, please contact the support team using the [feedback form](https://docs.google.com/forms/d/e/1FAIpQLSeVWCrnca08Gt_qoWYjTo6gnj1BEGL4NCUC9VEiQnXA02gzVQ/viewform).
\ No newline at end of file
+- [NASA Disasters Portal](https://disasters.openveda.cloud/) - Main portal for disaster data and tools
+- [JupyterHub Guide](jupyterhub.html) - Learn how to run these notebooks in a JupyterHub environment
+- [Data Workflow Diagrams](workflow2.html) - Understand the data processing pipelines
\ No newline at end of file
diff --git a/password-protect.html b/password-protect.html
new file mode 100644
index 0000000..3ebc538
--- /dev/null
+++ b/password-protect.html
@@ -0,0 +1,175 @@
+
+
+
+ Please enter the password to access the NASA Disasters Documentation
+ + +