{"id":20407,"name":"Iceberg Locations","description":"Antarctic large iceberg positions derived from ASCAT and OSCAT-2.","url":"https://github.com/Joel-hanson/Iceberg-locations","last_synced_at":"2026-04-05T12:30:17.285Z","repository":{"id":54897027,"uuid":"328673324","full_name":"Joel-hanson/Iceberg-locations","owner":"Joel-hanson","description":"Current Antarctic large iceberg positions derived from ASCAT and OSCAT-2","archived":false,"fork":false,"pushed_at":"2026-03-29T06:21:04.000Z","size":314,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-29T09:10:38.546Z","etag":null,"topics":["beautifulsoup4","climate-change","git-scraping","iceberg","python","scraping"],"latest_commit_sha":null,"homepage":"https://joel-hanson.github.io/Iceberg-locations/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Joel-hanson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-01-11T13:30:20.000Z","updated_at":"2026-03-29T06:21:08.000Z","dependencies_parsed_at":"2025-08-21T21:32:11.643Z","dependency_job_id":"7d6b8ff1-6c28-4356-8eba-dafcc3bb5219","html_url":"https://github.com/Joel-hanson/Iceberg-locations","commit_stats":{"total_commits":86,"total_committers":1,"mean_commits":86.0,"dds":0.0,"last_synced_commit":"0c2ea261553a9394057c39db0522354025c7b7a3"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Joel-hanson/Iceberg-locations","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Joel-hanson%2FIceberg-locations","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Joel-hanson%2FIceberg-locations/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Joel-hanson%2FIceberg-locations/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Joel-hanson%2FIceberg-locations/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Joel-hanson","download_url":"https://codeload.github.com/Joel-hanson/Iceberg-locations/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Joel-hanson%2FIceberg-locations/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31398770,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"Joel-hanson","name":"Joel Hanson","uuid":"17215044","kind":"user","description":"Software Engineer","email":"","website":"joel-hanson.github.io","location":null,"twitter":"Joelhanson25","company":"@ibm","icon_url":"https://avatars.githubusercontent.com/u/17215044?u=d2da007bc5532fc21bc548d8e7ac4441b820ae63\u0026v=4","repositories_count":99,"last_synced_at":"2024-06-11T15:48:49.958Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/Joel-hanson","funding_links":[],"total_stars":82,"followers":27,"following":91,"created_at":"2022-11-10T12:20:05.956Z","updated_at":"2024-06-11T15:48:52.941Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Joel-hanson","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Joel-hanson/repositories"},"packages":[],"commits":{"id":1254335,"full_name":"Joel-hanson/Iceberg-locations","default_branch":"main","total_commits":336,"total_committers":2,"total_bot_commits":90,"total_bot_committers":1,"mean_commits":168.0,"dds":0.2678571428571429,"past_year_total_commits":250,"past_year_total_committers":2,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":125.0,"past_year_dds":0.016000000000000014,"last_synced_at":"2026-03-29T09:02:03.628Z","last_synced_commit":"bc56c9c972af8ee797e7209bbe0632df10896102","created_at":"2023-03-27T11:32:25.532Z","updated_at":"2026-03-29T09:02:03.567Z","committers":[{"name":"GitHub Action","email":"action@github.com","login":"actions-user","count":246},{"name":"github-actions[bot]","email":"joelhanson025@gmail.com","login":"Joel-hanson","count":90}],"past_year_committers":[{"name":"GitHub Action","email":"action@github.com","login":"actions-user","count":246},{"name":"Joel Hanson","email":"joelhanson025@gmail.com","login":"Joel-hanson","count":4}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/Joel-hanson%2FIceberg-locations/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-04T00:00:07.631Z","repositories_count":6211803,"commits_count":927457303,"contributors_count":35800915,"owners_count":1145500,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"Joel-hanson/Iceberg-locations","html_url":"https://github.com/Joel-hanson/Iceberg-locations","last_synced_at":"2026-02-28T19:00:39.833Z","status":"error","issues_count":0,"pull_requests_count":1,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":6.0,"issues_closed_count":0,"pull_requests_closed_count":1,"pull_request_authors_count":1,"issue_authors_count":0,"avg_comments_per_issue":null,"avg_comments_per_pull_request":0.0,"merged_pull_requests_count":1,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2023-05-09T10:39:41.228Z","updated_at":"2026-02-28T19:00:39.833Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/Joel-hanson%2FIceberg-locations","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/Joel-hanson%2FIceberg-locations/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{},"pull_request_author_associations_count":{"OWNER":3},"issue_authors":{},"pull_request_authors":{"Joel-hanson":3},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-03-29T00:00:10.666Z","repositories_count":13977065,"issues_count":34554499,"pull_requests_count":112998814,"authors_count":11211912,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{"OWNER":2},"past_year_issue_authors":{},"past_year_pull_request_authors":{"Joel-hanson":2},"maintainers":[{"login":"Joel-hanson","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Joel-hanson"}],"active_maintainers":[{"login":"Joel-hanson","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Joel-hanson"}]},"events":{"total":{"PullRequestEvent":3,"PushEvent":149,"CreateEvent":2},"last_year":{"PullRequestEvent":3,"PushEvent":149,"CreateEvent":2}},"keywords":["beautifulsoup4","climate-change","git-scraping","iceberg","python","scraping"],"dependencies":[{"ecosystem":"pypi","filepath":"requirement.txt","sha":null,"kind":"manifest","created_at":"2022-08-14T06:01:13.498Z","updated_at":"2022-08-14T06:01:13.498Z","repository_link":"https://github.com/Joel-hanson/Iceberg-locations/blob/main/requirement.txt","dependencies":[{"id":1515809598,"package_name":"beautifulsoup4","ecosystem":"pypi","requirements":"==4.9.3","direct":true,"kind":"runtime","optional":false},{"id":1515809599,"package_name":"lxml","ecosystem":"pypi","requirements":"==4.6.2","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/deploy-pages.yml","sha":null,"kind":"manifest","created_at":"2025-08-07T14:31:36.929Z","updated_at":"2025-08-07T14:31:36.929Z","repository_link":"https://github.com/Joel-hanson/Iceberg-locations/blob/main/.github/workflows/deploy-pages.yml","dependencies":[{"id":24558966906,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":24558966907,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":24558966908,"package_name":"actions/configure-pages","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":24558966909,"package_name":"actions/upload-pages-artifact","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":24558966910,"package_name":"actions/deploy-pages","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/iceberg-tracker.yml","sha":null,"kind":"manifest","created_at":"2025-08-07T14:31:36.992Z","updated_at":"2025-08-07T14:31:36.992Z","repository_link":"https://github.com/Joel-hanson/Iceberg-locations/blob/main/.github/workflows/iceberg-tracker.yml","dependencies":[{"id":24558966919,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":24558966920,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":24558966921,"package_name":"actions/upload-artifact","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":24558966922,"package_name":"actions/download-artifact","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"docker","filepath":"Dockerfile","sha":null,"kind":"manifest","created_at":"2025-08-07T14:31:37.052Z","updated_at":"2025-08-07T14:31:37.052Z","repository_link":"https://github.com/Joel-hanson/Iceberg-locations/blob/main/Dockerfile","dependencies":[{"id":24558966923,"package_name":"python","ecosystem":"docker","requirements":"3.12-slim","direct":true,"kind":"build","optional":false}]},{"ecosystem":"pypi","filepath":"setup.py","sha":null,"kind":"manifest","created_at":"2025-08-07T14:31:37.132Z","updated_at":"2025-08-07T14:31:37.132Z","repository_link":"https://github.com/Joel-hanson/Iceberg-locations/blob/main/setup.py","dependencies":[]}],"score":2.4849066497880004,"created_at":"2023-09-11T14:52:12.475Z","updated_at":"2026-04-05T12:30:17.298Z","avatar_url":"https://github.com/Joel-hanson.png","language":"Python","category":"Cryosphere","sub_category":"Glacier and Ice Sheets","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# Antarctic Iceberg Tracker\n\nA Python tool for tracking large icebergs in Antarctic waters using satellite data from NASA's Scatterometer Climate Record Pathfinder (SCP).\n\n## Features\n\n- **Real-time Data**: Scrapes latest iceberg positions from NASA SCP website\n- **Location Tracking**: Precise latitude/longitude coordinates with DMS conversion\n- **Interactive Map**: Generate beautiful web-based visualizations with movement animations\n- **GitHub Pages Deployment**: Automatically deploy to a live website\n- **Data Analysis**: Summary statistics and iceberg movement tracking\n- **JSON Export**: Save data in structured format for further analysis\n- **Simple CLI**: Easy-to-use command-line interface\n\n## Live Demo\n\n🌐 **View the live Antarctic Iceberg Tracker**: [https://joel-hanson.github.io/Iceberg-locations/](https://joel-hanson.github.io/Iceberg-locations/)\n\nThe live site is automatically updated daily with the latest iceberg data and includes interactive features.\n\n## Quick Start\n\n### Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/Joel-hanson/Iceberg-locations.git\ncd Iceberg-locations\n\n# Install dependencies\npip install -r requirement.txt\n```\n\n### Usage\n\n```bash\n# Collect latest iceberg data\npython main.py scrape\n\n# Show data summary\npython main.py info\n\n# Generate interactive map\npython main.py map\n\n# View iceberg movement animations\npython main.py animations\n```\n\n## Commands\n\n### `scrape` - Collect Data\n\nFetches the latest iceberg position data from NASA SCP website and saves it to `iceberg_location.json`.\n\n```bash\npython main.py scrape\n```\n\n### `info` - Data Summary\n\nDisplays statistics about the collected iceberg data including number of icebergs, observation dates, and data coverage.\n\n```bash\npython main.py info\n```\n\n**Example output:**\n\n```\nAntarctic Iceberg Data Summary:\n   • 37 observation dates\n   • 53 current icebergs\n   • 97 unique icebergs tracked\n   • 1,832 total records\n   • Latest data: 11/11/21\n```\n\n### `map` - Interactive Visualization\n\nGenerates an interactive HTML map showing iceberg positions with clickable markers.\n\n```bash\npython main.py map\n```\n\nOpens `output/iceberg_map.html` in your browser with:\n\n- Interactive Antarctica-focused map\n- Clickable iceberg markers with details\n- **Movement animation links** in each popup\n- Real-time statistics display\n\n### `animations` - Movement Animations\n\nShows URLs to animated GIF files demonstrating historical iceberg movement patterns.\n\n```bash\npython main.py animations\n```\n\n**Example output:**\n\n```\nIceberg Movement Animations:\nData from: 07/02/25\nNote: Animations show historical movement patterns from NASA SCP\n\n  A23A     | N/A, 39 7'W          | https://ftp.scp.byu.edu/data/misc/iceberg_animations/a23a_movie.gif\n  C18B     | N/A, 78 17'E         | https://ftp.scp.byu.edu/data/misc/iceberg_animations/c18b_movie.gif\n```\n\nCopy the URLs to view GIF animations showing iceberg drift patterns over time.\n\n## Project Structure\n\n```\nIceberg-locations/\n├── main.py                 # Main entry point\n├── src/                    # Source code\n│   ├── __init__.py         # Package initialization\n│   ├── iceberg.py          # Core scraper script\n│   ├── cli.py              # Command-line interface\n│   ├── config.py           # Configuration settings\n│   └── tests.py            # Test suite\n├── data/                   # Data storage\n│   └── iceberg_location.json  # Scraped data (generated)\n├── output/                 # Generated outputs\n│   └── iceberg_map.html    # Interactive map (generated)\n├── docs/                   # Documentation\n├── assets/                 # Static assets\n├── requirement.txt         # Python dependencies\n├── README.md               # This file\n├── LICENSE                 # MIT License\n├── .github/workflows/      # GitHub Actions\n├── Dockerfile              # Docker container setup\n├── Makefile                # Build automation\n└── setup.py                # Package installation\n```\n\n## Data Source\n\nData is collected from the **NASA Scatterometer Climate Record Pathfinder (SCP)** database:\n\n**Current Data:** \u003chttps://www.scp.byu.edu/data/ice_tracking/antarctic.html\u003e\n**Movement Animations:** \u003chttps://ftp.scp.byu.edu/data/misc/iceberg_animations/\u003e\n\nThe animation files show historical movement patterns of icebergs over time, providing valuable insights into iceberg drift patterns in Antarctic waters.\n\n## Data Format\n\n```json\n{\n  \"11/11/21\": [\n    {\n      \"iceberg\": \"a23a\",\n      \"latitude\": -75.42,\n      \"longitude\": -39.83,\n      \"dms_latitude\": \"75°25'S\",\n      \"dms_longitude\": \"39°50'W\",\n      \"recent_observation\": \"11/11/21\"\n    }\n  ]\n}\n```\n\n## Development\n\n### Local Development Server\n\n```bash\n# Navigate to your project root\ncd /path/to/Iceberg-locations\n\n# Generate the map first\npython main.py map\n\n# Start a simple HTTP server\npython -m http.server 8000\n\n# Visit: http://localhost:8000/output/iceberg_map.html\n```\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["routing","language-model"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/20407","html_url":"https://ost.ecosyste.ms/projects/20407"}