Paper Dynasty Card Creation - Baseball card generation system
Added one-time utility scripts used to prepare 2005 defense CSV files for compatibility with retrosheet_data.py. Scripts: - rename_defense_columns.py: Renamed initial batch of defense columns - RF/9 → range_factor_per_nine - RF/G → range_factor_per_game - DP → DP_def, E → E_def, Ch → chances, Inn → Inn_def - CS% → caught_stealing_perc, PO → pickoffs - Name-additional → key_bbref - rename_additional_defense_columns.py: Second batch of column renames - Fld% → fielding_perc - Rtot → tz_runs_total, Rtot/yr → tz_runs_total_per_season - Rtz → tz_runs_field, Rdp → tz_runs_infield - undo_po_rename.py: Reverted PO → pickoffs for position players - Kept 'pickoffs' for defense_p.csv (pitchers) - Changed back to 'PO' for all other positions (c, 1b, 2b, etc.) - test_retrosheet_integration.py: Integration test for retrosheet_transformer - Validates batting and pitching stats loading - Tests date range filtering - Verifies player counts These scripts have already been executed and the defense files are properly formatted. Kept for historical reference and documentation. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .claude/plans | ||
| batters | ||
| card-output | ||
| data-input | ||
| defenders | ||
| html work | ||
| logs | ||
| pitchers | ||
| scouting | ||
| scripts | ||
| tests | ||
| .gitignore | ||
| automated_data_fetcher.py | ||
| batter-deltas.csv | ||
| batting_stats.csv | ||
| check_cards.py | ||
| CLAUDE.md | ||
| creation_helpers.py | ||
| db_calls_card_creation.py | ||
| db_calls.py | ||
| exceptions.py | ||
| live_series_update.py | ||
| new-batters.csv | ||
| new-pitchers.csv | ||
| pitcher-deltas.csv | ||
| pitching_stats.csv | ||
| pkmn.json | ||
| post_raw_player_csv.py | ||
| PROMO_CARD_FIX.md | ||
| pull_pitching_stats.py | ||
| pybaseball_doodling.py | ||
| pytest.ini | ||
| README.txt | ||
| REFACTORING_COMPLETE.md | ||
| REFACTORING_SUMMARY.md | ||
| refresh_cards.py | ||
| requirements.txt | ||
| retrosheet_data.py | ||
| retrosheet_transformer.py | ||
| retrosheet.db | ||
| scouting_batters.py | ||
| scouting_pitchers.py | ||
| test_data_fetcher_demo.py | ||
#######
CARD CREATION PROCESS
#######
1) Download stats
FanGraphs / https://www.fangraphs.com/leaders/splits-leaderboards
- Batting
- vL Standard / vlhp-basic.csv
- vL Batted Balls / vlhp-rate.csv
- vR Standard / vrhp-basic.csv
- vR Batted Balls / vrhp-rate.csv
- Pitching
- vL Standard / vlhh-basic.csv
- vL Batted Balls / vlhh-rate.csv
- vR Standard / vrhh-basic.csv
- vR Batted Balls / vrhh-rate.csv
Baseball Reference
- running.csv
- https://www.baseball-reference.com/leagues/majors/2023-baserunning-batting.shtml
- Remove header lines
- pitching.csv
- https://www.baseball-reference.com/leagues/majors/2023-standard-pitching.shtml
2) Run Card Updates (Python Configuration)
3) Check Card Validity (Python Configuration)
#######
OLD DATA REQUIREMENTS
#######
- Add any new players to players.csv for import
- Create directory in /data-input in format `XXXX Season Cardset`
- Upload the following csv files:
- baserunning-data.csv
- https://www.baseball-reference.com/leagues/majors/2023-baserunning-batting.shtml
- Remove header lines
- batter-stats.csv
- https://www.fangraphs.com/leaders/splits-leaderboards
- Remove header lines
- 20 PA vL / 40 PA vR for Live || 50 PA vL / 75 PA vR for legacy seasons
- defense-X.csv (each position)
- https://www.baseball-reference.com/leagues/majors/2023-specialpos_p-fielding.shtml
- replace the `p` in `p-fielding` with 1b/2b/lf
- Column Changes (pre-2013)
- Catchers: add column between Rgood and RsbC
- 1b/2b/3b/ss: add 3 columns between Rgood and Rbnt
- defense-of.csv (don't forget combined OF)
- https://www.baseball-reference.com/leagues/majors/2023-specialpos_of-fielding.shtml
- replace the `p` in `p-fielding` with of
- pitcher-data.csv
- https://www.baseball-reference.com/leagues/majors/2023-standard-pitching.shtml
- pitcher-stats.csv
- https://www.fangraphs.com/leaders/splits-leaderboards
- Remove header lines
- 20 TBF vL / 40 TBF vR for Live || 50 TBF vL / 75 TBF vR for legacy seasons
#######
OLD CARD CREATION PROCESS
#######
1) Import new players for sba_id with `1. Import Players`
2) Confirm cardset exists; if not, create now
3) Create cards with `3. Card Creation`
4) Generate csv output with `4. Card Output`
5) Upload output files into Sheets for Component Studio import
6) Upload ratings output files into Sheets for PD Ratings Guide
7) Import cards into Component Studio
8) Export -> Download All from Component Studio
9) Rename image files to <first>.<last>.png