🔴 Red Cross GIS Tools

Tools for Red Cross data processing, geographic analysis, and visualization

📖 What's Inside: Quick Guide to All 17 Tools (Click to expand)
🔍 Code Lookup Tool
Search built-in database for Red Cross chapters, regions, divisions, and counties. Get ECODE, RCODE, DCODE, and FIPS codes instantly.
📊 CSV Roll-Up
Aggregate ZIP-level data into multi-level hierarchies. Input raw ZIP data, output complete summaries at ZIP → County → Chapter → Region → Division levels.
🗺️ Create GeoJSON
Convert CSV files with geographic identifiers (ZIP, FIPS, etc.) into GeoJSON files ready for choropleth mapping in ArcGIS Online.
🔗 Orgler URL
Convert Power BI report URLs to Orgler format for embedding in Story Maps and RCView dashboards.
📋 Pop-up Creator
Create professional ArcGIS pop-up HTML templates. Includes AI workflow guide for generating beautiful inline CSS pop-ups using ChatGPT/Claude.
🌐 Geocoder
Convert addresses from CSV to lat/long coordinates. Choose from three free providers (Mapbox, Nominatim, or Google). Output as GeoJSON or CSV.
📋 Metadata BETA
Use AI (ChatGPT/Claude) to generate professional metadata for your ArcGIS items. Creates summaries, descriptions, tags, and access information.
🔐 OAuth Tokens
Generate 90-day OAuth refresh tokens for ArcGIS automation. Skip 2FA for 3 months! Perfect for Python scripts. Based on JR Matchett's tool.
📸 Hi-Res Captures
Kevin Ham's technique for capturing high-resolution map screenshots using browser DevTools. Includes practical dimensions for poster printing (2'×3', 3'×4', etc.).
🔄 ArcGIS Automation
Automate feature layer updates from SharePoint/OneDrive CSV files. Set up scheduled updates using ArcGIS Notebooks or local Python scripts with OAuth authentication.
📊 DRO Brief URL Generator
Generate Power BI filter URLs for DRO Brief Analytics reports. Enter DRO numbers and get embed-ready URLs for Operations Report and Client Assistance dashboards.
📝 Arcade Library
Copy/paste common Arcade expressions for pop-ups, labels, symbology, and filters. Pre-built expressions for ArcGIS Online, Pro, and Experience Builder.
🎨 Symbology Generator
Generate ArcGIS symbology JSON for unique values, class breaks, or single symbols. Create custom color ramps and graduated symbols without manual coding.
🎵 Tune-Mapomatic EXTERNAL
Searchable catalog of 1,000+ Red Cross map resources, hazard maps, forecasts, and GIS services. Includes Code Lookup for ARC geography (county, FIPS, ECODE, RCODE, DCODE).
🔍 REST Inspector BETA
Explore ArcGIS REST endpoints - see all layers, fields, domains, and metadata without clicking through pages. Copy as JSON or download as TXT.
📦 Batch Updater BETA
Update title, summary, tags, and metadata for multiple ArcGIS items at once using OAuth authentication. Perfect for rebranding or standardizing metadata.
🔗 Dependency Mapper BETA
Discover what maps, dashboards, and apps depend on a feature service before you modify or delete it. Assess impact of schema changes.
📎 Attachment Manager BETA
Download all attachments from a feature layer as ZIP, or bulk upload attachments using CSV mapping. Great for backing up disaster photos or inspection images.

🔗 Common Workflows - Tabs That Work Together:

Tab 7 + Tab 8: Generate metadata with AI → Get OAuth token → Automate updates with Python (95% faster!)
Tab 1 + Tab 3: Look up codes for your data → Create GeoJSON files for mapping
Tab 6 + Tab 3: Geocode addresses to coordinates → Convert to GeoJSON for web maps
Tab 2 + Tab 3: Roll up ZIP data to county/region levels → Create GeoJSON choropleth maps
PUBLIC
INTERNAL
BETA
ℹ️ About This Tool - Why Use Codes?

Red Cross Code Lookup

Built-in database of all Red Cross chapters, regions, divisions, and counties. Search by name to find ECODE, RCODE, DCODE, and FIPS codes instantly.

Why Use Codes Instead of Names?

Codes are standardized, unique identifiers that eliminate ambiguity and spelling errors.

ZIP Codes (5-digit)

What: United States Postal Service ZIP Code Tabulation Areas (ZCTA5)

Format: 5 digits (e.g., 33019, 02134)

Why better: Every ZIP code is unique. "Miami" could refer to the city, county, or multiple ZIP codes. 33101 is unambiguous.

FIPS Codes (5-digit)

What: Federal Information Processing Standards codes for counties

Format: 5 digits = State FIPS (2) + County FIPS (3), e.g., 12011 = Florida (12) + Broward County (011)

Why better: "Dallas" could be Dallas County, TX (48113) or Dallas County, AL (01047). FIPS codes are unique nationwide and never change.

ECODE (Chapter Code)

What: Unique identifier for Red Cross chapters

Format: Numeric code (e.g., 1019, 38300)

Why better: "Red Cross of Kentucky" vs "American Red Cross Kentucky Region" vs "ARC Kentucky" - all refer to the same chapter, but 1019 is always correct.

RCODE (Region Code)

What: Unique identifier for Red Cross regions

Format: Alphanumeric (e.g., 01R04, 38R28)

Why better: Region names change over time, but codes remain stable. "Southeast Region" might become "Southeast and Caribbean Division" - the code stays the same.

DCODE (Division Code)

What: Unique identifier for Red Cross divisions

Format: Alphanumeric (e.g., D25, D27)

Why better: Division names are long and can be abbreviated differently. D25 is always "Southeast and Caribbean Division" regardless of how it's written.

Key Benefits:

  • No spelling variations (Jefferson vs Jeffersons vs Jefferson County)
  • No ambiguity (Dallas city vs Dallas County vs Dallas Parish)
  • Standardized format (always 5 digits for FIPS, always consistent)
  • Never change (names change, codes stay the same)
  • Perfect for joins (codes match exactly, names require fuzzy matching)
  • International standards (FIPS is federal standard, ZIP is USPS standard)
🔍
Enter a search term to find codes
Search by Chapter, Region, Division, County, State, or FIPS
ℹ️ About Data Enrichment Tool

Data Enrichment automatically adds Red Cross geographic codes to every row in your file

📥 WHAT YOU UPLOAD

Your CSV with any columns you want (must include ZIP or County)

Building ID Address City ZIP Status Owner
B14625 113 S LAS POSAS RD SAN MARCOS 92078 Active Leased
⬇ ENRICHMENT ADDS 8 RED CROSS COLUMNS ⬇

📤 WHAT YOU GET BACK

All your original columns + 8 new Red Cross geographic hierarchy columns

Building ID Address City ZIP Status Owner County FIPS ECODE Chapter RCODE Region DCODE Division
B14625 113 S LAS POSAS RD SAN MARCOS 92078 Active Leased San Diego 6073 1019 San Diego County 517 Pacific 105 West

✓ These 8 columns are automatically added: County, FIPS, ECODE, Chapter, RCODE, Region, DCODE, Division

Upload CSV File

Drop CSV file here or click to browse

Upload row-level data with ZIP or County codes

Load 10 sample building records to test enrichment

ℹ️ How It Works - Geographic Hierarchy Explained

What This Does

This tool takes your CSV file with geographic identifiers (ZIP codes, FIPS codes, etc.) and automatically creates GeoJSON files at multiple aggregation levels. Perfect for creating choropleth maps in ArcGIS Online, web applications, or data visualization tools.

Geographic Hierarchy

📦

ZIP Codes

Most granular level - includes all original data fields. Perfect for detailed analysis.

🏛️

Counties

Aggregated from ZIP codes - includes county totals and hierarchy information.

📚

Chapters

Aggregated from counties - boundaries created by merging county polygons.

🌍

Regions

Aggregated from chapters - larger geographic areas with regional totals.

🌎

Divisions

Highest level - aggregated from regions. Perfect for high-level overviews.

Step 1: Upload Your CSV File

📤
Drop your CSV file here or click to browse
Your CSV can have individual row-level data (multiple entries per ZIP/County) or pre-aggregated data
💡 Tip: This tool will automatically aggregate your data by ZIP or County

Load 25 sample ZIP codes with data spanning multiple chapters and regions

Step 3: Select Output Levels

Choose which GeoJSON files you want to create (with hierarchical roll-ups):

📦
Most Detailed

Includes all your original data fields

🏛️
Aggregated

ZIP codes summed by county

📚
Dissolved

County boundaries merged

🌍
Dissolved

Chapter boundaries merged

🌎
Highest Level

Region boundaries merged

0%
Ready to process...

Generated Files

Power BI → Orgler URL Converter

Convert Power BI URLs to Orgler format for embedding in Story Maps and RCView dashboards. Paste a single URL below for quick conversion, or scroll down for the Bulk Pipeline to convert many at once and create ArcGIS Dashboards.

A sample URL is pre-filled. Click "Convert to Orgler URL" to see how it works, or replace it with your own Power BI URL.

How to Use:

  1. Click "Convert to Orgler URL" to see the sample conversion, or
  2. Replace the sample URL with your own Power BI report URL
  3. Click "Convert to Orgler URL"
  4. Copy the generated URL and use it in your Story Map or RCView embedding code

Note: Orgler URLs are optimized for embedding Power BI reports in ArcGIS Story Maps and RCView dashboards.

PowerBI → Orgler → ArcGIS Dashboard

Paste 1 or 50 Power BI URLs (or upload a CSV). Convert to Orgler URLs, then generate a Python script that creates an ArcGIS Dashboard for each — ready to run in an ArcGIS Online Notebook.

How to Use:

  1. Add URLs: Paste one or more Power BI URLs (one per line), or upload a CSV that contains Power BI URLs in any column — the tool auto-detects them
  2. Convert: Click "Convert All URLs" — each PowerBI URL is converted to an Orgler URL. Preview the results in the table
  3. Stop here if you only need Orgler URLs: Copy them or download a 2-column CSV (PowerBI | Orgler)
  4. Create ArcGIS Dashboards: Click "Generate Notebook Script" — this produces a complete Python script that creates one ArcGIS Dashboard per URL, each with a full-screen embedded content widget pointing to the Orgler URL
  5. Run the script: Open an ArcGIS Online Notebook, paste the script, and run it. The notebook is already authenticated — no tokens needed. It creates all dashboards and prints the results
  6. Get your results: Paste the notebook output back here, then download the final 3-column CSV: PowerBI URL | Orgler URL | Dashboard URL

Extract field names from an ArcGIS Online feature layer and generate inline CSS + HTML pop-up templates ready to paste into ArcGIS Experience Builder, Map Viewer, or Dashboards.

🤖 Pro Workflow: Use AI to Create Beautiful Pop-ups! (Click to expand)

🚀 The Smart Way to Create ArcGIS Pop-ups

⚡ Critical Requirement:

ArcGIS pop-ups require INLINE CSS—all styles must be embedded directly in the HTML using style="..." attributes. External stylesheets and <style> tags don't work!

✨ The AI Solution:

ChatGPT, Claude, and other AI assistants excel at creating inline CSS. Provide your field names and design requirements, and they'll generate production-ready pop-up HTML.

📋 Recommended Workflow:

1
Get Your Field Names (This Tool!)

Use this tab to parse field definitions from your FeatureServer → Get clean field list

2
Ask AI to Create Your Pop-up

Example prompt to ChatGPT/Claude:

"Create an ArcGIS pop-up template with INLINE CSS (all styles in style attributes) for these fields: {County}, {Region}, {Pop_2023}, {Med_HH_Inc_2023}. Make it look professional with a Red Cross color scheme (#DC143C), use a table layout, format numbers with commas, and add icons. Remember: ArcGIS requires inline CSS only!"
3
Copy → Paste → Done!

Copy the AI-generated HTML → Paste into ArcGIS pop-up configuration → Instant professional pop-up!

💡 Pro Tips for AI Prompts:
  • Always specify "inline CSS" or "all styles in style attributes"
  • Mention your color scheme (Red Cross: #DC143C, #c62828)
  • Request specific layouts: table, card, header+sections, etc.
  • Ask for formatting: commas in numbers, date formatting, currency symbols
  • Include emojis or icons for visual appeal (📍 🏘️ 💰 📊 ✅)
  • Test in one pop-up, then apply to all features!
✅ What AI Can Do:
✅ Tables with borders
✅ Color-coded sections
✅ Conditional formatting
✅ Icons and emojis
✅ Number formatting
✅ Responsive layouts

How to Use:

  1. Open your ArcGIS FeatureServer REST page (e.g., .../FeatureServer/0)
  2. Scroll down to the Fields: section
  3. Copy all the field definitions (the entire list showing field names, types, and aliases)
  4. Paste them into the box below
👆 Sample field definitions above. Click "Parse Fields" to see how it works, or replace with your own field definitions.

Quick Reference:

After parsing fields:

  1. Select which fields to include in your pop-up
  2. Optionally add a pop-up title
  3. Optionally group related fields together (e.g., all 2022-2025 fields in one group)
  4. Click "Generate Pop-up HTML"
  5. Copy the generated HTML and paste it into ArcGIS Experience Builder or Map Viewer pop-up editor

Note: Generated HTML uses inline CSS matching American Red Cross color standards (#c8102e) and compact Economist-style typography.

Address Geocoder

Geocode addresses from a CSV file to latitude/longitude coordinates. Choose from three providers and get back GeoJSON or CSV files ready for mapping.

📊 Provider Comparison

✓ All three providers are 100% FREE with no time limits
Provider FREE Tier Limit Credit Card? Can Cache? Get API Key
Mapbox 100,000/month FREE ✗ Yes ✗ No Sign up →
Geoapify 3,000/day FREE (~90k/month) ✓ No ✓ Yes Sign up →
Bing Maps 125,000/year FREE (~10k/month) ✓ No ⚠ Limited Sign up →
💡 Choose any provider: All three are FREE with generous limits. Pick based on which API key you want to create.
📤
Drop your CSV file here or click to browse
Your CSV should have address columns (street, city, state, zip, etc.)

How to Use:

  1. Choose a geocoding provider from the dropdown (Geoapify recommended)
  2. Get a free API key from the signup link (no credit card needed for Geoapify & Bing)
  3. Paste your API key in the field above
  4. Upload a CSV file with address columns (street, city, state, zip, etc.)
  5. Select which columns contain address information
  6. Optionally specify a country code to improve accuracy
  7. Click "Start Geocoding" to process your addresses
  8. Download the resulting GeoJSON or CSV file with coordinates

Note: Addresses are geocoded one at a time to respect API rate limits. All three providers offer generous free tiers - see comparison table above.

ArcGIS Metadata Updater - ChatGPT Prompt

💡 How Tab 7 + Tab 8 Work Together (Click to expand)

🚀 The Ultimate Workflow

Step 1: Generate Quality Content (Tab 7)
  1. Copy the ChatGPT prompt below
  2. Paste into ChatGPT
  3. Answer questions about your item
  4. ChatGPT writes professional metadata
✅ Result: High-quality, consistent metadata text
Step 2: Automate Updates (Tab 8)
  1. Generate OAuth token (once every 90 days) → Tab 8
  2. Run: python3 ~/arcgis_metadata_updater.py
  3. Paste metadata from ChatGPT
  4. Updates item - NO 2FA!
✅ Result: Automated updates in ~30 seconds per item
📊 Time Savings:
  • Old way: 10+ min per item (2FA every time)
  • Tab 7 only: 5+ hours for 50 items (2FA×50)
  • Tab 8 only: 2 hours (but inconsistent metadata)
  • 🚀 BOTH tabs: ~90 min for 50 items, 0 2FA prompts!
💡 Use Both When:
  • 🎯 You want AI-written metadata + Automated updates
  • 🎯 Quality content + Efficient workflow = PERFECT!
  • 🎯 Updating 10+ items (massive time savings!)
✅ Best Use Case
Updating metadata for 10+ items in a project. For a single file, it's faster to type metadata manually. This tool shines when you need consistent, professional metadata across multiple related items.
⚡ Simple & Fast
Copy prompt → Paste to ChatGPT → Answer 8 questions → Get complete Python script → Run in ArcGIS Notebook

ChatGPT Interactive Prompt

I need you to help me create a Python script for an ArcGIS Online Notebook that updates item metadata. Before I generate the final code, I need you to ask me these questions ONE AT A TIME and wait for my answers: 1. What is your ArcGIS Item ID? 2. In one sentence, what does this item show or contain? 3. What geographic area does it cover? 4. What datasets or data sources are included? 5. Who is the primary audience? 6. Which categories apply? (Pick from: NHQ, Division, Region, Chapter, DRO, DA, Weather, Hazard, Tropical, Partners, Training, Boundaries, DRA_Territory, Home Fire Campaign, Lives Saved, Mission Adaptation, Partner HUB, BioMed, SAF, NOAA) 7. What is your Division name? 8. What project is this for? (or say "Confidential") Once I provide all answers, generate a complete Python script that: - Creates a 20-30 word professional summary - Creates a 50+ word detailed description - Generates 3-5 relevant tags - Updates all metadata fields using GIS("home") - Assigns categories with "/" prefix - Includes error handling and success messages Start by asking me question #1.
✅ How to Use:
  1. Click "Copy Prompt" above
  2. Paste into ChatGPT or Claude
  3. Answer the 8 questions it asks you (one at a time)
  4. ChatGPT generates your complete Python script
  5. Copy script → Paste into ArcGIS Notebook → Run!

🔐 ArcGIS OAuth Token Generator

🎉 NO MORE 2FA PAIN!
Generate a refresh token ONCE → Use for 14-90 days → Run ALL Python scripts without 2FA every time!
Works for metadata updates, content management, feature operations, analysis, geocoding, publishing, and more!
🙏 Credit: This tool is based on JR Matchett's OAuth token generator. Thank you for creating this solution and sharing it with the Red Cross GIS community!
Step 1: Setup
Enter your OAuth Client ID
Step 2: Authorize
Complete 2FA (one time)
Step 3: Get Tokens
Save refresh token
📘 Don't have a Client ID?

1. Go to ArcGIS Developers
2. Sign in with your ArcGIS account
3. Click "New Application" → Give it a name
4. Under "Authentication" → Copy your Client ID
5. Set Redirect URI to: urn:ietf:wg:oauth:2.0:oob

Don't have a Client ID?
  1. Go to ArcGIS Online
  2. Content → Add Item → Application
  3. Choose "Application"
  4. Registered App → OAuth 2.0
  5. Set redirect URI: urn:ietf:wg:oauth:2.0:oob
  6. Copy your Client ID

📘 How to Use This Tool

Step 1: Enter Your OAuth Client ID

Get your Client ID from your registered OAuth app in ArcGIS Online. Don't have one? See instructions below.

Step 2: Click "Authorize with ArcGIS"

A popup opens → Log in to ArcGIS → Complete 2FA → Authorization code appears → Copy the entire code

Step 3: Paste Code and Get Tokens

Paste authorization code → Click "Get Tokens" → Access and Refresh tokens appear

Step 4: Save Your Refresh Token

Click "Save" to download agol_refresh_token.json → Keep this file secure!

✅ After Setup:

Use the saved JSON file with Python scripts to authenticate WITHOUT 2FA for up to 90 days!

📸 High-Resolution Screenshot Capture

🙏 Credit: This technique shared by Kevin Ham, Red Cross GIS. Thank you for this brilliant solution!

🎯 What Is This?

A technique to capture ultra-high-resolution screenshots of web content—especially useful for ArcGIS maps, dashboards, and web apps that need to be printed or used in presentations.

💡 Why Use This?

  • Print Quality: Capture maps at 5000×8000 pixels (or larger!) for high-quality printing
  • Presentations: Get crystal-clear screenshots for PowerPoint, reports, and posters
  • No Pixelation: Unlike normal screenshots that look blurry when zoomed, these stay sharp
  • Perfect for Maps: ArcGIS maps, Experience Builder apps, Dashboards—all captured at full resolution

📊 Resolution Comparison

Method Resolution Quality
❌ Normal screenshot (laptop) ~1920×1080 Pixelated when printed
✅ Custom Device (Kevin's method) 5000×8000 (or more!) Crystal clear, print-ready

📋 How to Do It (Chrome)

Step 1: Open DevTools
  • Open your ArcGIS map/dashboard/web app
  • Press F12 or Cmd+Option+I (Mac) or Ctrl+Shift+I (Windows)
  • DevTools panel opens on the right or bottom
Step 2: Toggle Device Toolbar
  • Click the 📱 Device Toggle icon in top-left of DevTools
  • Or press Cmd+Shift+M (Mac) or Ctrl+Shift+M (Windows)
  • Your page now shows in "mobile device" view
Step 3: Open Settings (The Key Step!)
  • Click the ⚙️ Settings icon (three dots) next to device selector dropdown
  • Settings panel opens on the right
  • Click "Devices" in the left menu
Step 4: Add Custom Device (Kevin's Secret!)
  • Click "Add custom device..." button
  • Device name: Jumbo (or whatever you want!)
  • Width: 5000 pixels
  • Height: 8000 pixels
  • Device pixel ratio: Leave as 1
  • User agent: Select Mobile (or Desktop)
  • Click "Add"
💡 Poster Printing Guide

Choose dimensions based on your final print size. Rule of thumb: multiply inches by 150-300 (DPI).

Poster Size Acceptable (150 DPI) High Quality (300 DPI)
2' × 3' (24" × 36") 3600 × 5400 7200 × 10800
3' × 4' (36" × 48") 5400 × 7200 10800 × 14400
Letter (8.5" × 11") 1275 × 1650 2550 × 3300
Tabloid (11" × 17") 1650 × 2550 3300 × 5100

💡 For maps viewed from distance (wall posters), 150 DPI is usually perfect. For close inspection (reports), use 300 DPI.

Step 5: Select Your Custom Device
  • Close Settings panel
  • In the device dropdown (top of page), select "Jumbo"
  • Your page now renders at 5000×8000 pixels!
  • You'll see scrollbars because it's HUGE - that's normal
Step 6: Take the Screenshot
Method 1: Chrome's Built-in Capture
  • Press Cmd+Shift+P (Mac) or Ctrl+Shift+P (Windows)
  • Type: screenshot
  • Select "Capture full size screenshot"
  • Image downloads automatically at FULL 5000×8000 resolution! 🎉
Method 2: Browser Extension
  • Use extensions like "GoFullPage" or "Awesome Screenshot"
  • They'll capture the entire page at full custom resolution

🌐 Other Browsers

Firefox:

Firefox has similar DevTools! Press F12 → Click device icon → Use "Responsive Design Mode" → Set custom dimensions → Use built-in screenshot tool (camera icon)

Edge:

Edge uses Chromium, so the process is identical to Chrome above!

Safari:

Enable Developer menu → Enter Responsive Design Mode → Set custom dimensions → Use screenshot extensions

🎯 Perfect For:

ArcGIS Maps

Capture web maps at print resolution for reports, posters, and presentations

Dashboards

Get high-res snapshots of Operations Dashboard or Experience Builder apps

Story Maps

Capture full Story Map sections without scrolling or pixelation

Web Apps

Any web application - charts, tables, complex layouts - all crystal clear

🔄 ArcGIS Feature Layer Automation

Automate daily updates to ArcGIS Feature Layers from SharePoint or OneDrive CSV files. This workflow eliminates manual uploads and keeps your maps always up-to-date.

📋 What This Does

1. Save a CSV to SharePoint OneDrive

Could be a daily export, manual upload, or automated report

2. Share the file link with you

Get the SharePoint sharing link or OneDrive sync path

3. You set up automated updates

Using ArcGIS Notebooks (cloud) or Python scripts (local Mac)

4. Feature layer updates automatically

Every day, hour, or whenever you schedule it

⭐ Method 1: ArcGIS Notebooks (Recommended - Runs in the Cloud)
✅ Best for: Cloud-based automation, no local Mac required, already logged into ArcGIS Online
Step 1: Get the SharePoint CSV Link

Ask the data owner to:

  1. Upload their CSV file to SharePoint or OneDrive
  2. Right-click the file → ShareCopy Link
  3. Send you the link (looks like: https://redcross.sharepoint.com/...)
💡 Pro Tip: Make sure the link has "Anyone with the link can view" permissions, or share it directly with your ArcGIS account email.
Step 2: Get Your Feature Layer ID
  1. Go to ArcGIS OnlineContent
  2. Find your feature layer (or create a new one from the CSV first)
  3. Open the item page
  4. Look at the URL: https://redcross.maps.arcgis.com/home/item.html?id=abc123def456
  5. Copy the ID (the part after id=)
Example ID: 0ac831210d79488481ebe52b4beba35d
Step 3: Create an ArcGIS Notebook
  1. In ArcGIS Online, go to ContentNew ItemNotebook
  2. Choose Python 3 runtime
  3. Name it something like "Daily CSV Update - [Your Layer Name]"
  4. Click Create
Step 4: Add the Python Code

Copy and paste this code into a notebook cell:

from arcgis.gis import GIS
from arcgis.features import FeatureLayerCollection
import pandas as pd

# Connect to ArcGIS Online (you're already logged in!)
gis = GIS("home")

# Configuration
SHAREPOINT_CSV_URL = "YOUR_SHAREPOINT_LINK_HERE"
FEATURE_LAYER_ID = "YOUR_LAYER_ID_HERE"

# Download CSV from SharePoint
print("📥 Downloading CSV from SharePoint...")
df = pd.read_csv(SHAREPOINT_CSV_URL)
print(f"✅ Loaded {len(df)} rows")

# Get the feature layer
print("🔍 Finding feature layer...")
item = gis.content.get(FEATURE_LAYER_ID)
flc = FeatureLayerCollection.fromitem(item)
layer = flc.layers[0]

# Delete all existing features
print("🗑️ Deleting old features...")
layer.delete_features(where="1=1")

# Add new features from CSV
print("📤 Uploading new features...")
features = df.to_dict('records')
layer.edit_features(adds=features)

print("✅ Update complete!")
⚠️ Important: Replace YOUR_SHAREPOINT_LINK_HERE and YOUR_LAYER_ID_HERE with your actual values!
Step 5: Test It Manually
  1. Click Run on the cell
  2. Watch the output - you should see "✅ Update complete!"
  3. Go to your feature layer and verify the data updated
Step 6: Schedule It
  1. In the notebook, click Tasks (top menu)
  2. Click Create Task
  3. Choose your schedule:
    • Daily at 6:00 AM
    • Hourly during business hours
    • Weekly on Monday mornings
  4. Click Create
  5. Done! Your layer will update automatically 🎉
✅ Advantage: Runs in the cloud - no need to keep your computer on!

🔧 Troubleshooting

❌ "Permission denied" or "403 Forbidden"

Make sure you own the feature layer or have edit permissions. Check that your OAuth token has the right scopes.

❌ "Cannot read CSV from SharePoint"

Ensure the SharePoint link has "Anyone with the link" permissions, or share it directly with your ArcGIS email.

❌ "Field mismatch" errors

Your CSV columns must match the feature layer schema. Create the layer from the CSV first, or add missing fields to the layer.

❌ Scheduled task not running

ArcGIS Notebooks: Check the Tasks panel for errors.

🔍 ArcGIS REST Service Inspector

Quickly explore ArcGIS REST endpoints - see all layers, fields, domains, and metadata without clicking through pages.

✅ What You'll Get:
  • Service name, type, version, copyright
  • All layers with feature counts and geometry types
  • Complete field list with types, aliases, domains
  • Spatial reference and extent information
  • Copy metadata as JSON or download as TXT
A sample URL is pre-filled. Click "Inspect Service" to see how it works!

📝 Arcade Expression Library

Copy/paste common Arcade expressions for pop-ups, labels, symbology, and filters. No Arcade knowledge required!

💡 What is Arcade?

Arcade is ArcGIS's expression language for creating dynamic content - conditional formatting, calculated fields, custom labels, and more. These pre-built expressions work in ArcGIS Online, Pro, and Experience Builder.

🎨 Quick Symbology Generator

Generate ArcGIS symbology JSON for unique values, class breaks, or single symbols. Copy and paste into your web maps!

🎯 Perfect For:

Creating custom color ramps, graduated symbols, and category-based styles without manually coding JSON.

Step 1: Select Field

Step 2: Choose Symbology Type

📦 Batch Item Updater

Update title, summary, tags, and metadata for multiple ArcGIS items at once using OAuth authentication.

⚠️ OAuth Required:

This tool requires an OAuth refresh token. Use the OAuth Tokens tab (Tool #8) to generate one first!

💡 Best For:

Rebranding projects, standardizing metadata across 10+ items, or bulk tag updates.

Upload CSV with Items to Update

CSV should have columns: ItemID, NewTitle, NewSummary, NewTags

📁
Click or drag CSV file here

🔗 Service Dependency Mapper

Discover what maps, dashboards, and apps depend on a feature service before you modify or delete it.

⚠️ Important:

Modifying a service schema (adding/removing fields) will break items that depend on it. Use this tool to assess impact first!

📎 Bulk Attachment Manager

Download all attachments from a feature layer, or upload multiple attachments in bulk using a CSV mapping file.

💡 Use Cases:
  • Backup disaster damage photos before archiving
  • Bulk upload facility inspection photos
  • Export all shelter photos for offline use

Mode Selection

ℹ️ About Geocode + Enrich

One-Step: Street Addresses → Coordinates + Red Cross Hierarchy

This tool takes a CSV with street addresses and does everything in one pass:

  1. Geocodes each address via Geocodio API → lat/lng coordinates
  2. Extracts ZIP code from the geocoded result
  3. Looks up Red Cross hierarchy using the ZIP → County, FIPS, Chapter, Region, Division

Output: Your original columns + 12 new columns (Latitude, Longitude, Geocoded_Address, Confidence, County, FIPS, ECODE, Chapter, RCODE, Region, DCODE, Division)

Geocodio API Key

Free tier: 2,500 lookups/day. Get a free API key at geocod.io

Upload CSV with Addresses

Drop CSV file here or click to browse

CSV must have address columns (Street, City, State, ZIP)

Bulk Dashboard Creator — Convert multiple Power BI URLs into ArcGIS Dashboards instantly. Paste your URLs, define report types and regions, and generate a ready-to-run ArcGIS Notebook script that creates all dashboards in one click.

Step 1: Paste Power BI URLs

One URL per line. Include the report type and region as a label before each URL (e.g., DAT Response Overview | Alabama: https://app.powerbi.com/...)

How to Use:

  1. Paste Power BI URLs with labels: Report Type | Region: URL
  2. Click "Generate Notebook Script"
  3. Review the inventory table
  4. Copy the script into an ArcGIS Online Notebook and run
  5. All dashboards are created automatically with proper titles, tags, and embedded content

Prerequisite: Create ONE template dashboard manually in AGOL with an Embedded Content widget, then paste its JSON from AGOL Assistant (Data tab) when prompted.

CAP Fluxx Converter — Convert Fluxx XLSX partner reports into the 57-column CSV format required for the ArcGIS CAP Partner Map feature layer. Auto-matches 50 columns, normalizes state codes (OR → US-OR), and generates ObjectId. Upload the CSV to ArcGIS Online to overwrite the existing layer.

Drop Fluxx XLSX File

Drop XLSX file here or click to browse

fluxx_cap_national_ops_summary_partner_map_*.xlsx

How to Use:

  1. Export the partner map report from Fluxx (XLSX format)
  2. Drop the file above → review mapping and preview
  3. Paste Geocodio API key → click Geocode
  4. Click Download CSV (now has coordinates)
  5. Go to CAP_2025_Partnerships_IV → AGOL Item Page
  6. Click Update DataOverwrite Entire Feature Layer

Empty fields: Secondary Focus, Tertiary Focus — not in Fluxx. Lat/Lng geocoded by Geocodio before download.

📚 Documentation & Help

Complete reference guide for all Red Cross GIS Tools. Click any section in the Table of Contents to jump directly to that topic.

🚀 Quick Start Guide

New to Red Cross GIS Tools? Here's the fastest way to get started:

  1. Code Lookup - Search for any Red Cross code (ECODE, RCODE, DCODE) or location
  2. Data Enrichment - Upload a CSV with ZIP codes to add Red Cross hierarchy columns
  3. Create GeoJSON - Convert your enriched data into mappable GeoJSON files

All tools run entirely in your browser - no data is sent to any server. Your data stays private and secure.

🔍 Code Lookup

Search and explore the complete American Red Cross organizational hierarchy.

Coverage:
  • 33,120 ZIP codes - 100% US coverage including all territories
  • 3,162 Counties - Complete FIPS code mapping
  • 226 Chapters - All ECODE assignments
  • 48 Regions - All RCODE assignments
  • 6 Divisions - All DCODE assignments
💡 Tip: Type any ZIP code, county name, chapter name, or code to instantly see the complete Red Cross hierarchy.

📊 Data Enrichment

Enrich your data with complete Red Cross geographic hierarchy columns.

Input Options:
  • ZIP codes - Column named "Zip", "ZIP", or "ZIP Code"
  • County FIPS - 5-digit FIPS codes
  • County + State - County name (with/without "County") + State
Output Columns Added:
County - County name
FIPS - 5-digit FIPS
ECODE - Chapter code
Chapter - Chapter name
RCODE - Region code
Region - Region name
DCODE - Division code
Division - Division name

🗺️ Create GeoJSON

Transform CSV data into professional GeoJSON files with geographic boundaries.

Supported Levels:
  • ZIP - Individual ZIP code boundaries (ZCTA)
  • County - County boundaries with FIPS codes
  • Chapter - Red Cross chapter territories (ECODE)
  • Region - Red Cross region boundaries (RCODE)
  • Division - Red Cross division boundaries (DCODE)
💡 Workflow: First use Data Enrichment to add hierarchy columns, then upload the enriched CSV here to create GeoJSON at any level.

🔗 Orgler URL Creator

Convert Power BI report URLs to Orgler format for embedding in ArcGIS Story Maps.

How it works: Paste your Power BI report URL, and the tool automatically generates an Orgler-compatible URL that can be embedded in ArcGIS Story Maps.

📋 Pop-up Creator

Generate custom ArcGIS pop-up HTML with Red Cross branded inline CSS.

Steps:
  1. Paste an ArcGIS REST API feature layer URL
  2. Tool fetches all field definitions automatically
  3. Select which fields to include in the pop-up
  4. Copy the generated HTML with inline CSS
  5. Paste directly into ArcGIS Pro or Online pop-up configuration

🌐 Address Geocoder

Geocode addresses to GeoJSON or CSV with three FREE provider options.

Providers (All FREE):
  • Mapbox - 100,000/month (requires credit card)
  • Geoapify - 3,000/day (~90k/month, no credit card)
  • Bing Maps - 125,000/year (~10k/month, no credit card)
💡 Recommendation: Geoapify is the best choice for most users - no credit card required and generous daily limits.

🤖 Metadata Automation

Automate ArcGIS Online metadata updates with OAuth authentication.

Features:
  • OAuth Sign-in - Full user permissions via implicit grant
  • Content Audit - Scan for items missing summary, description, or tags
  • 8 Item Types - Feature Layer, Web Map, Dashboard, Experience Builder, etc.
  • Direct Updates - Apply changes directly to ArcGIS Online
  • Category Assignment - Auto-resolve org category schema paths

🔐 OAuth Tokens

Generate OAuth tokens for ArcGIS API authentication.

Use Cases:
  • Python scripts that need API access
  • Testing API endpoints
  • Automating ArcGIS Online workflows
  • Accessing protected feature services

📸 Hi-Res Captures

Capture high-resolution screenshots of ArcGIS web maps for publications and reports.

Features:
  • Publication-quality map images
  • Custom dimensions and resolutions
  • PNG or JPEG export formats
  • Perfect for reports, presentations, and documentation

🔧 OAuth Setup Guide

How to configure OAuth for web applications that need ArcGIS API access.

Step 1: Register OAuth Application

  1. Sign in to ArcGIS Online as administrator
  2. Go to Content → My Content
  3. Click New Item → Application → Application
  4. Fill in Title, Tags, and Summary
  5. Click Save

Step 2: Configure Redirect URIs

  1. Open the newly created application item
  2. Go to Settings tab
  3. Under Application, find Registered Info
  4. Click Update next to Redirect URIs
  5. Add ALL URLs where your app will be hosted:
http://localhost:8080/your-app/index.html
https://yourusername.github.io/your-repo/index.html
https://your-domain.com/your-app/index.html

Step 3: Copy Your Client ID

Find the App ID (also called Client ID) - a 16-character alphanumeric string like pyLZqliTbDfPwbi4. Save this for use in your JavaScript code.

🔧 Troubleshooting

❌ "Invalid redirect_uri" Error

Cause: The redirect URI in your browser doesn't match what's registered in ArcGIS Online.

Fix:

  1. Open browser console to see the exact redirect URI being used
  2. Go to ArcGIS Online → Content → Your OAuth App → Settings
  3. Add the EXACT URI (including protocol, port, and path)
  4. Common issues: http vs https, trailing slashes, different ports

⚠️ "No joins found" when creating GeoJSON

Cause: Your CSV doesn't have the correct ID column for the selected level.

Fix:

  • Check that your CSV has the correct ID column (FIPS, ECODE, RCODE, DCODE)
  • Verify format: Division codes = "D21", Region codes = "32R16"
  • Use Data Enrichment first to add all hierarchy columns

🐢 Slow performance with large files

Cause: Processing large datasets in browser memory.

Fix:

  • Use Data Enrichment first to add hierarchy columns
  • Start with higher geographic levels (County/Chapter instead of ZIP)
  • Close other browser tabs to free memory

🗺️ Missing territories

Note: All US territories are now included! The database covers 33,120 ZIP codes including Puerto Rico, US Virgin Islands, Guam, and American Samoa. If you find a missing ZIP, please report it.

❓ Frequently Asked Questions

Q: Is my data sent to any server?

No! All tools run entirely in your browser. Your data never leaves your computer unless you explicitly use a tool that requires API access (like the Geocoder).

Q: How current is the Red Cross hierarchy data?

The data is sourced from the official ArcGIS Red Cross Master Geography 2022 service. It includes 33,120 ZIP codes, 3,162 counties, 226 chapters, 48 regions, and 6 divisions.

Q: Can I use these tools offline?

Most tools work offline once the page is loaded. Exceptions are tools that fetch geographic boundaries or use external APIs (Geocoder, OAuth, etc.).

Q: What file formats are supported?

Input: CSV files. Output: GeoJSON, CSV, and HTML depending on the tool.

Q: Where can I report bugs or request features?

Please open an issue on GitHub: github.com/franzenjb/GeoJSON-Creation-Tool/issues

Red Cross GIS Tools Documentation • Updated January 2025

Made with ❤️ for the American Red Cross