๐ What's Inside: Quick Guide to All 17 Tools (Click to expand)
๐ Common Workflows - Tabs That Work Together:
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)
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 |
๐ค 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
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
๐ก 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):
Generated Files
Convert Power BI URLs to Orgler format for embedding in Story Maps and RCView dashboards.
How to Use:
- Click "Convert to Orgler URL" to see the sample conversion, or
- Replace the sample URL with your own Power BI report URL
- Click "Convert to Orgler URL"
- 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.
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
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!
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:
Use this tab to parse field definitions from your FeatureServer โ Get clean field list
Example prompt to ChatGPT/Claude:
Copy the AI-generated HTML โ Paste into ArcGIS pop-up configuration โ Instant professional pop-up!
- 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!
How to Use:
- Open your ArcGIS FeatureServer REST page (e.g.,
.../FeatureServer/0) - Scroll down to the Fields: section
- Copy all the field definitions (the entire list showing field names, types, and aliases)
- Paste them into the box below
Quick Reference:
After parsing fields:
- Select which fields to include in your pop-up
- Optionally add a pop-up title
- Optionally group related fields together (e.g., all 2022-2025 fields in one group)
- Click "Generate Pop-up HTML"
- 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
| 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 โ |
How to Use:
- Choose a geocoding provider from the dropdown (Geoapify recommended)
- Get a free API key from the signup link (no credit card needed for Geoapify & Bing)
- Paste your API key in the field above
- Upload a CSV file with address columns (street, city, state, zip, etc.)
- Select which columns contain address information
- Optionally specify a country code to improve accuracy
- Click "Start Geocoding" to process your addresses
- 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
- Copy the ChatGPT prompt below
- Paste into ChatGPT
- Answer questions about your item
- ChatGPT writes professional metadata
- Generate OAuth token (once every 90 days) โ Tab 8
- Run:
python3 ~/arcgis_metadata_updater.py - Paste metadata from ChatGPT
- Updates item - NO 2FA!
- โ 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!
- ๐ฏ You want AI-written metadata + Automated updates
- ๐ฏ Quality content + Efficient workflow = PERFECT!
- ๐ฏ Updating 10+ items (massive time savings!)
ChatGPT Interactive Prompt
- Click "Copy Prompt" above
- Paste into ChatGPT or Claude
- Answer the 8 questions it asks you (one at a time)
- ChatGPT generates your complete Python script
- Copy script โ Paste into ArcGIS Notebook โ Run!
๐ ArcGIS OAuth Token Generator
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
- Go to ArcGIS Online
- Content โ Add Item โ Application
- Choose "Application"
- Registered App โ OAuth 2.0
- Set redirect URI:
urn:ietf:wg:oauth:2.0:oob - Copy your Client ID
๐ How to Use This Tool
Get your Client ID from your registered OAuth app in ArcGIS Online. Don't have one? See instructions below.
A popup opens โ Log in to ArcGIS โ Complete 2FA โ Authorization code appears โ Copy the entire code
Paste authorization code โ Click "Get Tokens" โ Access and Refresh tokens appear
Click "Save" to download agol_refresh_token.json โ Keep this file secure!
Use the saved JSON file with Python scripts to authenticate WITHOUT 2FA for up to 90 days!
๐ธ High-Resolution Screenshot Capture
๐ฏ 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)
- Open your ArcGIS map/dashboard/web app
- Press
F12orCmd+Option+I(Mac) orCtrl+Shift+I(Windows) - DevTools panel opens on the right or bottom
- Click the ๐ฑ Device Toggle icon in top-left of DevTools
- Or press
Cmd+Shift+M(Mac) orCtrl+Shift+M(Windows) - Your page now shows in "mobile device" view
- Click the โ๏ธ Settings icon (three dots) next to device selector dropdown
- Settings panel opens on the right
- Click "Devices" in the left menu
- Click "Add custom device..." button
- Device name:
Jumbo(or whatever you want!) - Width:
5000pixels - Height:
8000pixels - Device pixel ratio: Leave as
1 - User agent: Select
Mobile(or Desktop) - Click "Add"
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.
- 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
- Press
Cmd+Shift+P(Mac) orCtrl+Shift+P(Windows) - Type:
screenshot - Select "Capture full size screenshot"
- Image downloads automatically at FULL 5000ร8000 resolution! ๐
- Use extensions like "GoFullPage" or "Awesome Screenshot"
- They'll capture the entire page at full custom resolution
๐ Other Browsers
Firefox has similar DevTools! Press F12 โ Click device icon โ Use
"Responsive Design Mode" โ
Set custom dimensions โ Use built-in screenshot tool (camera icon)
Edge uses Chromium, so the process is identical to Chrome above!
Enable Developer menu โ Enter Responsive Design Mode โ Set custom dimensions โ Use screenshot extensions
๐ฏ Perfect For:
Capture web maps at print resolution for reports, posters, and presentations
Get high-res snapshots of Operations Dashboard or Experience Builder apps
Capture full Story Map sections without scrolling or pixelation
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
Could be a daily export, manual upload, or automated report
Get the SharePoint sharing link or OneDrive sync path
Using ArcGIS Notebooks (cloud) or Python scripts (local Mac)
Every day, hour, or whenever you schedule it
Ask the data owner to:
- Upload their CSV file to SharePoint or OneDrive
- Right-click the file โ Share โ Copy Link
- Send you the link (looks like:
https://redcross.sharepoint.com/...)
- Go to ArcGIS Online โ Content
- Find your feature layer (or create a new one from the CSV first)
- Open the item page
- Look at the URL:
https://redcross.maps.arcgis.com/home/item.html?id=abc123def456 - Copy the ID (the part after
id=)
0ac831210d79488481ebe52b4beba35d
- In ArcGIS Online, go to Content โ New Item โ Notebook
- Choose Python 3 runtime
- Name it something like "Daily CSV Update - [Your Layer Name]"
- Click Create
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!")
YOUR_SHAREPOINT_LINK_HERE and YOUR_LAYER_ID_HERE with
your actual values!
- Click Run on the cell
- Watch the output - you should see "โ Update complete!"
- Go to your feature layer and verify the data updated
- In the notebook, click Tasks (top menu)
- Click Create Task
- Choose your schedule:
- Daily at 6:00 AM
- Hourly during business hours
- Weekly on Monday mornings
- Click Create
- Done! Your layer will update automatically ๐
๐ง Troubleshooting
Make sure you own the feature layer or have edit permissions. Check that your OAuth token has the right scopes.
Ensure the SharePoint link has "Anyone with the link" permissions, or share it directly with your ArcGIS email.
Your CSV columns must match the feature layer schema. Create the layer from the CSV first, or add missing fields to the layer.
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.
- 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
๐ Arcade Expression Library
Copy/paste common Arcade expressions for pop-ups, labels, symbology, and filters. No Arcade knowledge required!
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!
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.
This tool requires an OAuth refresh token. Use the OAuth Tokens tab (Tool #8) to generate one first!
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
๐ Service Dependency Mapper
Discover what maps, dashboards, and apps depend on a feature service before you modify or delete it.
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.
- Backup disaster damage photos before archiving
- Bulk upload facility inspection photos
- Export all shelter photos for offline use