JBF.COM

GIS Tools

Operational data processing, Red Cross enrichment, geocoding, and GeoJSON creation

17+ tools · Updated 2026-06-08
Tool Guide: what each workflow is for
Red Cross Enrichment Adds Red Cross hierarchy from ZIP, FIPS, or County + State. No address geocoding.
Geocodio + Red Cross Geocodes street addresses first, then adds Red Cross hierarchy. Use this for raw address lists.
Generic Geocoder Internal coordinate lookup tool for Mapbox, Geoapify, or Bing. It is not Red Cross enrichment.
Code Lookup
Search built-in database for Red Cross chapters, regions, divisions, and counties. Get ECODE, RCODE, DCODE, and FIPS codes instantly.
Red Cross Enrichment
Add County, FIPS, ECODE, Chapter, RCODE, Region, DCODE, and Division to rows that already have ZIP, FIPS, or County + State.
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.
Generic Geocoder
Convert addresses from CSV to lat/long coordinates. Choose from three free providers (Mapbox, Nominatim, or Google). Output as GeoJSON or CSV.
Metadata
Use AI to generate professional metadata for ArcGIS items, including summaries, descriptions, tags, and access notes.
OAuth Tokens
Generate 90-day OAuth refresh tokens for ArcGIS automation and Python scripts.
Hi-Res Captures
Capture high-resolution map screenshots using browser DevTools with practical dimensions for poster printing.
ArcGIS Automation
Automate feature layer updates from SharePoint or OneDrive CSV files using ArcGIS Notebooks or local Python scripts.
DRO Brief URL Generator
Generate Power BI filter URLs for DRO Brief Analytics reports and embed-ready Operations Report dashboards.
Arcade Library
Copy common Arcade expressions for pop-ups, labels, symbology, and filters across ArcGIS Online, Pro, and Experience Builder.
Symbology Generator
Generate ArcGIS symbology JSON for unique values, class breaks, and single-symbol renderers.
Tune-Mapomatic
Open the searchable catalog of Red Cross map resources, hazard maps, forecasts, and GIS services.
REST Inspector
Explore ArcGIS REST endpoints, layers, fields, domains, and metadata without clicking through REST pages.
Batch Updater
Update titles, summaries, tags, and metadata for multiple ArcGIS items using OAuth authentication.
Dependency Mapper
See which maps, dashboards, and apps depend on a feature service before you modify schema or delete content.
Attachment Manager
Download all feature-layer attachments as a ZIP, or bulk upload attachments using CSV mapping.

Common Workflows

Metadata to automation: Generate metadata, create an OAuth token, then automate ArcGIS updates with Python.
Codes to map file: Use Code Lookup, then Create GeoJSON for an ArcGIS-ready mapping file.
Addresses to map file: Use Generic Geocoder for coordinates, then Create GeoJSON for web maps.
Red Cross hierarchy: Use Red Cross Enrichment when rows already have ZIP, FIPS, or County + State.
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 Red Cross Enrichment

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

📥 WHAT YOU UPLOAD

Your CSV with ZIP, County FIPS, County + State, or a cleaned geocoded output

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

📤 WHAT YOU GET BACK

All your original columns + Red Cross geographic hierarchy columns; hardened skill exports also add match audit fields

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

✓ Browser enrichment adds: County, FIPS, ECODE, Chapter, RCODE, Region, DCODE, Division

Production enrichment standard

Do not accept a partial ZIP-only match as complete. For Lives Saved, case leads, or any geocoded operational file, run the hardened geocodio-clean-up or red-cross-enrich skill and expect 100% Red Cross assignment unless a row is explicitly documented as an exception.

  • Match order: exact ZIP, lat/lon point in Red Cross county geography, Connecticut planning-region rule, U.S. territory rule, county/state fallback, nearby ZIP prefix fallback, then explicit unmatched review.
  • Audit fields: hardened skill exports include RC_Match_Method, RC_Match_Confidence, and RC_Match_Note.
  • Connecticut: preserve Census planning-region county-equivalent FIPS 09110-09190. Example: Greater Bridgeport Planning Region is 09120; Stratford maps to ARC of Connecticut 07038. Do not silently convert it back to old Fairfield County.
  • Territories: missing territory ZIPs do not prove enrichment failed. Use the explicit territory fallback for USVI, Guam, Northern Mariana Islands, and American Samoa; American Samoa may be region-level when no local chapter ECODE exists in the lookup.

Upload CSV File

Drop CSV file here or click to browse

Upload row-level data with ZIP, County FIPS, or County + State; use the hardened skill for geocoded edge cases

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 (var(--arc-red)), 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: var(--arc-red), #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.

Generic 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 Geocodio + Red Cross

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

This browser tool takes a CSV with street addresses and does the fast ZIP-based 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 browser ZIP hierarchy table

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

Production case-file rule: After Geocodio, run the hardened geocodio-clean-up skill for the audited Red Cross pass. It uses ZIP first, then point/county, Connecticut planning-region, U.S. territory, and review fallbacks so records do not get stranded only because a ZIP is missing from the lookup table.

Check RC_Match_Method, RC_Match_Confidence, and RC_Match_Note before publishing or mapping.

Geocodio Access

Public users must paste their own Geocodio API key. Owner mode is password protected and uses a server-side key without exposing it in this page. Get a free API key at geocod.io

Safety rule: the owner password is only a trigger for the protected server function. Never put Jeff's Geocodio API key directly into this public page. Vercel must have GEOCODIO_API_KEY and either GEOCODIO_OWNER_PASSWORD or GEOCODIO_OWNER_PASSWORD_SHA256 configured.

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 — Legacy one-report converter for the older Fluxx partner map export. It converts a single XLSX file into the 57-column CSV format required for the ArcGIS CAP Partner Map feature layer.

DCS Community Partner updates now use the local Python workflow because they require both the Fluxx request report and organization report. Run /Users/jefffranzen/Desktop/RED CROSS/Miscellaneous/fluxx/convert_and_geocode.py for the current two-report process.

Drop Fluxx XLSX File

Drop XLSX file here or click to browse

Legacy input: fluxx_cap_national_ops_summary_partner_map_*.xlsx

How to Use:

  1. Use this only for the older single partner-map Fluxx export.
  2. Export the partner map report from Fluxx (XLSX format)
  3. Drop the file above → review mapping and preview
  4. Paste your own Geocodio API key or choose owner mode with the protected password → click Geocode
  5. Click Download CSV if you want a local backup
  6. Click Sign in to ArcGIS
  7. Click Overwrite Feature Layer

Do not use this tab for DCS Community Partner updates. Use the local two-report Python workflow documented in CAP_FLUXX_UPDATE_RUNBOOK.md.

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

🔧 Experience Builder Hidden Features

Interactive checklist of powerful hidden features in ArcGIS Experience Builder. Star ★ items to prioritize, mark as Tried or Skip as you experiment.

0 starred · 0 tried · 0 skipped · 0 pending

📚 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. Red Cross Enrichment - Upload a CSV with ZIP, FIPS, or County + State 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:
  • ZIP lookup table - fast first-pass enrichment for most ZIP-coded records
  • County and county-equivalent geography - FIPS mapping, including Connecticut planning-region county equivalents where available
  • 226 Chapters - All ECODE assignments
  • 48 Regions - All RCODE assignments
  • 6 Divisions - All DCODE assignments
Tip: Type a ZIP code, county name, chapter name, or code to inspect the Red Cross hierarchy. If a ZIP is missing, use the hardened enrichment skill instead of assuming the record cannot be assigned.

Red Cross Enrichment

Enrich your data with Red Cross geographic hierarchy columns, then use the hardened skill pipeline for geocoded production files and edge cases.

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
  • Geocoded production files - use the geocodio-clean-up skill when Latitude/Longitude, Geocodio County, or territory data is available
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
Hardened skill matching rules:
  1. Use exact ZIP when the ZIP table has a match.
  2. If ZIP is missing or absent from the table, use latitude/longitude against Red Cross county geography when available.
  3. For Connecticut, keep the Census planning-region county-equivalent FIPS codes 09110-09190. Example: Greater Bridgeport Planning Region is 09120 and Stratford maps to ARC of Connecticut 07038.
  4. For U.S. territories, apply explicit territory handling. USVI, Guam, Northern Mariana Islands, and American Samoa must not fail only because the ZIP lookup is incomplete.
  5. Use county/state and nearby ZIP-prefix fallbacks only when they produce a defensible, auditable assignment.

Hardened outputs include RC_Match_Method, RC_Match_Confidence, and RC_Match_Note. A partial count like 590 of 599 is a review failure, not a finished enrichment.

🗺️ 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 Red Cross 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

Generic 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 Red Cross Enrichment first to add all hierarchy columns

🐢 Slow performance with large files

Cause: Processing large datasets in browser memory.

Fix:

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

🗺️ Territory or Connecticut rows did not enrich

Cause: ZIP-only lookup is not enough for every operational record. Some U.S. territory ZIPs are absent from the local ZIP table, and Connecticut now uses planning regions as county-equivalent geography instead of the old county system.

Fix: Run the hardened geocodio-clean-up or red-cross-enrich skill and review RC_Match_Method, RC_Match_Confidence, and RC_Match_Note. Connecticut planning-region FIPS 09110-09190 should be preserved; territory rows should be assigned through explicit territory fallback when ZIP is missing from the lookup.

❓ Frequently Asked Questions

Q: Is my data sent to any server?

No! Most tools run entirely in your browser. Your data only leaves your computer when you explicitly use a tool that requires API access, such as Generic Geocoder or Geocodio + Red Cross.

Q: How current is the Red Cross hierarchy data?

The browser tools use the local Red Cross lookup package for fast hierarchy lookup. For production enrichment, the maintained skills also use current Red Cross county geometry and org-code lookups so Connecticut planning-region and U.S. territory exceptions can be handled explicitly.

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, such as Generic Geocoder, Geocodio + Red Cross, OAuth, or ArcGIS automation.

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

GIS Tools — Jeff Franzen

GitHub Portfolio