{"id":307075,"name":"Sand Mining Watch","description":"A custom sand-mine detection tool by fine-tuning foundation models for earth observation, which leverage self supervised learning.","url":"https://github.com/berkeleysandproject/sandmining-watch","last_synced_at":"2026-05-14T23:30:18.876Z","repository":{"id":177094929,"uuid":"659469763","full_name":"BerkeleySandProject/sandmining-watch","owner":"BerkeleySandProject","description":"Deep learning methodology to detect sand mines","archived":false,"fork":false,"pushed_at":"2024-08-20T14:33:34.000Z","size":320176,"stargazers_count":6,"open_issues_count":0,"forks_count":3,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-05-09T12:39:05.891Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BerkeleySandProject.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}},"created_at":"2023-06-27T22:59:58.000Z","updated_at":"2025-04-28T08:07:45.000Z","dependencies_parsed_at":"2025-04-17T02:45:05.786Z","dependency_job_id":null,"html_url":"https://github.com/BerkeleySandProject/sandmining-watch","commit_stats":null,"previous_names":["berkeleysandproject/sandmining-watch"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BerkeleySandProject%2Fsandmining-watch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BerkeleySandProject%2Fsandmining-watch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BerkeleySandProject%2Fsandmining-watch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BerkeleySandProject%2Fsandmining-watch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BerkeleySandProject","download_url":"https://codeload.github.com/BerkeleySandProject/sandmining-watch/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254367217,"owners_count":22059480,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":"BerkeleySandProject","name":"Berkeley Sand Project","uuid":"127349565","kind":"organization","description":"A set of projects run by the School of Information at UC Berkeley, around sand mining","email":null,"website":"www.globalpolicy.science","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/127349565?v=4","repositories_count":4,"last_synced_at":"2024-05-22T00:05:38.698Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/BerkeleySandProject","funding_links":[],"total_stars":3,"followers":3,"following":0,"created_at":"2023-04-25T16:41:25.171Z","updated_at":"2024-05-22T00:05:39.635Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BerkeleySandProject","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BerkeleySandProject/repositories"},"packages":[],"commits":{"id":8134418,"full_name":"berkeleysandproject/sandmining-watch","default_branch":"main","total_commits":0,"total_committers":6,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":39.833333333333336,"dds":0.4560669456066946,"past_year_total_commits":12,"past_year_total_committers":4,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":3.0,"past_year_dds":0.33333333333333337,"last_synced_at":"2026-05-05T19:00:33.090Z","last_synced_commit":null,"created_at":"2025-01-04T00:18:46.537Z","updated_at":"2025-05-29T19:04:19.669Z","committers":[{"name":"tboehnel","email":"tom.boehnel@gmail.com","login":"tboehnel","count":130},{"name":"Ando Shah","email":"ando@berkeley.edu","login":"ando-shah","count":54},{"name":"Suraj R. Nair","email":"suraj.nair@fati.ischool.berkeley.edu","login":null,"count":25},{"name":"Gautam Sai Yarramreddy","email":"gautamsai_y@berkeley.edu","login":"gautamsaiy","count":20},{"name":"Suraj R Nair","email":"54517554+surajrn","login":"surajrn","count":8},{"name":"Tom Bohnel","email":"tboehnel@fati.ischool.berkeley.edu","login":null,"count":2}],"past_year_committers":[{"name":"Ando Shah","email":"ando@berkeley.edu","login":"ando-shah","count":8},{"name":"suraj","email":"suraj.nair@berkeley.edu","login":"surajrn","count":2},{"name":"Gautam Sai Yarramreddy","email":"gautamsai_y@berkeley.edu","login":"gautamsaiy","count":1},{"name":"Suraj R. Nair","email":"suraj.nair@fati.ischool.berkeley.edu","login":null,"count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/berkeleysandproject%2Fsandmining-watch/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-07T00:00:08.754Z","repositories_count":6230220,"commits_count":897361627,"contributors_count":34917372,"owners_count":1150070,"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":"BerkeleySandProject/sandmining-watch","html_url":"https://github.com/BerkeleySandProject/sandmining-watch","last_synced_at":"2025-05-30T22:31:24.137Z","status":"not_found","issues_count":0,"pull_requests_count":7,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":15962.0,"issues_closed_count":0,"pull_requests_closed_count":7,"pull_request_authors_count":2,"issue_authors_count":0,"avg_comments_per_issue":null,"avg_comments_per_pull_request":0.0,"merged_pull_requests_count":7,"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":"2024-05-22T00:04:48.129Z","updated_at":"2025-11-12T07:00:58.600Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/BerkeleySandProject%2Fsandmining-watch","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/BerkeleySandProject%2Fsandmining-watch/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{},"pull_request_author_associations_count":{"CONTRIBUTOR":5,"COLLABORATOR":2},"issue_authors":{},"pull_request_authors":{"tboehnel":5,"gautamsaiy":2},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-13T00:00:11.310Z","repositories_count":14590477,"issues_count":34252077,"pull_requests_count":112128422,"authors_count":11261011,"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":{},"past_year_issue_authors":{},"past_year_pull_request_authors":{},"maintainers":[{"login":"gautamsaiy","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/gautamsaiy"}],"active_maintainers":[]},"events":{"total":{"WatchEvent":3},"last_year":{}},"keywords":[],"dependencies":[{"ecosystem":"pypi","filepath":"environment.yml","sha":null,"kind":"manifest","created_at":"2025-04-17T02:44:39.164Z","updated_at":"2025-04-17T02:44:39.164Z","repository_link":"https://github.com/BerkeleySandProject/sandmining-watch/blob/main/environment.yml","dependencies":[{"id":22718697711,"package_name":"absl-py","ecosystem":"pypi","requirements":"==1.4.0","direct":true,"kind":"runtime","optional":false},{"id":22718697869,"package_name":"affine","ecosystem":"pypi","requirements":"==2.4.0","direct":true,"kind":"runtime","optional":false},{"id":22718697973,"package_name":"albumentations","ecosystem":"pypi","requirements":"==1.3.0","direct":true,"kind":"runtime","optional":false},{"id":22718697974,"package_name":"appdirs","ecosystem":"pypi","requirements":"==1.4.4","direct":true,"kind":"runtime","optional":false},{"id":22718697975,"package_name":"attrs","ecosystem":"pypi","requirements":"==23.1.0","direct":true,"kind":"runtime","optional":false},{"id":22718697976,"package_name":"awscli","ecosystem":"pypi","requirements":"==1.29.8","direct":true,"kind":"runtime","optional":false},{"id":22718697977,"package_name":"backoff","ecosystem":"pypi","requirements":"==1.10.0","direct":true,"kind":"runtime","optional":false},{"id":22718697978,"package_name":"boto3","ecosystem":"pypi","requirements":"==1.28.8","direct":true,"kind":"runtime","optional":false},{"id":22718697979,"package_name":"botocore","ecosystem":"pypi","requirements":"==1.31.8","direct":true,"kind":"runtime","optional":false},{"id":22718698051,"package_name":"cachetools","ecosystem":"pypi","requirements":"==5.3.1","direct":true,"kind":"runtime","optional":false},{"id":22718698052,"package_name":"certifi","ecosystem":"pypi","requirements":"==2023.5.7","direct":true,"kind":"runtime","optional":false},{"id":22718698053,"package_name":"charset-normalizer","ecosystem":"pypi","requirements":"==3.2.0","direct":true,"kind":"runtime","optional":false},{"id":22718698054,"package_name":"click","ecosystem":"pypi","requirements":"==8.1.3","direct":true,"kind":"runtime","optional":false},{"id":22718698055,"package_name":"click-plugins","ecosystem":"pypi","requirements":"==1.1.1","direct":true,"kind":"runtime","optional":false},{"id":22718698056,"package_name":"cligj","ecosystem":"pypi","requirements":"==0.7.2","direct":true,"kind":"runtime","optional":false},{"id":22718698241,"package_name":"cmake","ecosystem":"pypi","requirements":"==3.26.4","direct":true,"kind":"runtime","optional":false},{"id":22718698242,"package_name":"colorama","ecosystem":"pypi","requirements":"==0.4.4","direct":true,"kind":"runtime","optional":false},{"id":22718698243,"package_name":"coloredlogs","ecosystem":"pypi","requirements":"==15.0.1","direct":true,"kind":"runtime","optional":false},{"id":22718698244,"package_name":"configobj","ecosystem":"pypi","requirements":"==5.0.8","direct":true,"kind":"runtime","optional":false},{"id":22718698245,"package_name":"contourpy","ecosystem":"pypi","requirements":"==1.1.0","direct":true,"kind":"runtime","optional":false},{"id":22718698246,"package_name":"cycler","ecosystem":"pypi","requirements":"==0.11.0","direct":true,"kind":"runtime","optional":false},{"id":22718698247,"package_name":"cython","ecosystem":"pypi","requirements":"==0.29.35","direct":true,"kind":"runtime","optional":false},{"id":22718698248,"package_name":"docker-pycreds","ecosystem":"pypi","requirements":"==0.4.0","direct":true,"kind":"runtime","optional":false},{"id":22718698730,"package_name":"docutils","ecosystem":"pypi","requirements":"==0.16","direct":true,"kind":"runtime","optional":false},{"id":22718698791,"package_name":"einops","ecosystem":"pypi","requirements":"==0.6.1","direct":true,"kind":"runtime","optional":false},{"id":22718698792,"package_name":"everett","ecosystem":"pypi","requirements":"==3.2.0","direct":true,"kind":"runtime","optional":false},{"id":22718698914,"package_name":"filelock","ecosystem":"pypi","requirements":"==3.12.2","direct":true,"kind":"runtime","optional":false},{"id":22718698915,"package_name":"fiona","ecosystem":"pypi","requirements":"==1.9.4.post1","direct":true,"kind":"runtime","optional":false},{"id":22718698933,"package_name":"flatbuffers","ecosystem":"pypi","requirements":"==23.5.26","direct":true,"kind":"runtime","optional":false},{"id":22718698968,"package_name":"fonttools","ecosystem":"pypi","requirements":"==4.41.0","direct":true,"kind":"runtime","optional":false},{"id":22718698969,"package_name":"fsspec","ecosystem":"pypi","requirements":"==2023.6.0","direct":true,"kind":"runtime","optional":false},{"id":22718698970,"package_name":"geopandas","ecosystem":"pypi","requirements":"==0.13.2","direct":true,"kind":"runtime","optional":false},{"id":22718698971,"package_name":"gitdb","ecosystem":"pypi","requirements":"==4.0.10","direct":true,"kind":"runtime","optional":false},{"id":22718699048,"package_name":"gitpython","ecosystem":"pypi","requirements":"==3.1.32","direct":true,"kind":"runtime","optional":false},{"id":22718699095,"package_name":"google-api-core","ecosystem":"pypi","requirements":"==2.11.1","direct":true,"kind":"runtime","optional":false},{"id":22718699124,"package_name":"google-auth","ecosystem":"pypi","requirements":"==2.22.0","direct":true,"kind":"runtime","optional":false},{"id":22718699148,"package_name":"google-auth-oauthlib","ecosystem":"pypi","requirements":"==1.0.0","direct":true,"kind":"runtime","optional":false},{"id":22718699189,"package_name":"google-cloud","ecosystem":"pypi","requirements":"==0.34.0","direct":true,"kind":"runtime","optional":false},{"id":22718699329,"package_name":"google-cloud-core","ecosystem":"pypi","requirements":"==2.3.3","direct":true,"kind":"runtime","optional":false},{"id":22718699361,"package_name":"google-cloud-storage","ecosystem":"pypi","requirements":"==2.10.0","direct":true,"kind":"runtime","optional":false},{"id":22718699362,"package_name":"google-crc32c","ecosystem":"pypi","requirements":"==1.5.0","direct":true,"kind":"runtime","optional":false},{"id":22718699363,"package_name":"google-resumable-media","ecosystem":"pypi","requirements":"==2.5.0","direct":true,"kind":"runtime","optional":false},{"id":22718699418,"package_name":"googleapis-common-protos","ecosystem":"pypi","requirements":"==1.59.1","direct":true,"kind":"runtime","optional":false},{"id":22718699419,"package_name":"grpcio","ecosystem":"pypi","requirements":"==1.56.0","direct":true,"kind":"runtime","optional":false},{"id":22718699439,"package_name":"huggingface-hub","ecosystem":"pypi","requirements":"==0.16.4","direct":true,"kind":"runtime","optional":false},{"id":22718699440,"package_name":"humanfriendly","ecosystem":"pypi","requirements":"==10.0","direct":true,"kind":"runtime","optional":false},{"id":22718699441,"package_name":"idna","ecosystem":"pypi","requirements":"==3.4","direct":true,"kind":"runtime","optional":false},{"id":22718699442,"package_name":"imageio","ecosystem":"pypi","requirements":"==2.22.1","direct":true,"kind":"runtime","optional":false},{"id":22718699511,"package_name":"importlib-resources","ecosystem":"pypi","requirements":"==6.1.0","direct":true,"kind":"runtime","optional":false},{"id":22718699581,"package_name":"ipywidgets","ecosystem":"pypi","requirements":"==8.1.1","direct":true,"kind":"runtime","optional":false},{"id":22718699582,"package_name":"jinja2","ecosystem":"pypi","requirements":"==3.1.2","direct":true,"kind":"runtime","optional":false},{"id":22718699583,"package_name":"jmespath","ecosystem":"pypi","requirements":"==1.0.1","direct":true,"kind":"runtime","optional":false},{"id":22718699600,"package_name":"joblib","ecosystem":"pypi","requirements":"==1.3.1","direct":true,"kind":"runtime","optional":false},{"id":22718699601,"package_name":"jupyterlab-widgets","ecosystem":"pypi","requirements":"==3.0.9","direct":true,"kind":"runtime","optional":false},{"id":22718699645,"package_name":"kiwisolver","ecosystem":"pypi","requirements":"==1.4.4","direct":true,"kind":"runtime","optional":false},{"id":22718699808,"package_name":"matplotlib","ecosystem":"pypi","requirements":"==3.7.1","direct":true,"kind":"runtime","optional":false},{"id":22718699809,"package_name":"matplotlib-scalebar","ecosystem":"pypi","requirements":"==0.8.1","direct":true,"kind":"runtime","optional":false},{"id":22718699667,"package_name":"labelbox","ecosystem":"pypi","requirements":"==3.49.1","direct":true,"kind":"runtime","optional":false},{"id":22718699776,"package_name":"lightning-utilities","ecosystem":"pypi","requirements":"==0.9.0","direct":true,"kind":"runtime","optional":false},{"id":22718699777,"package_name":"lit","ecosystem":"pypi","requirements":"==17.0.3","direct":true,"kind":"runtime","optional":false},{"id":22718699778,"package_name":"markdown","ecosystem":"pypi","requirements":"==3.4.3","direct":true,"kind":"runtime","optional":false},{"id":22718699791,"package_name":"markupsafe","ecosystem":"pypi","requirements":"==2.1.3","direct":true,"kind":"runtime","optional":false},{"id":22718699887,"package_name":"mmsegmentation","ecosystem":"pypi","requirements":"==1.1.1","direct":true,"kind":"runtime","optional":false},{"id":22718699926,"package_name":"mpmath","ecosystem":"pypi","requirements":"==1.3.0","direct":true,"kind":"runtime","optional":false},{"id":22718699927,"package_name":"networkx","ecosystem":"pypi","requirements":"==3.1","direct":true,"kind":"runtime","optional":false},{"id":22718699928,"package_name":"ninja","ecosystem":"pypi","requirements":"==1.11.1","direct":true,"kind":"runtime","optional":false},{"id":22718699929,"package_name":"numpy","ecosystem":"pypi","requirements":"==1.25.0","direct":true,"kind":"runtime","optional":false},{"id":22718699943,"package_name":"nvidia-cublas-cu11","ecosystem":"pypi","requirements":"==11.10.3.66","direct":true,"kind":"runtime","optional":false},{"id":22718699944,"package_name":"nvidia-cuda-cupti-cu11","ecosystem":"pypi","requirements":"==11.7.101","direct":true,"kind":"runtime","optional":false},{"id":22718699945,"package_name":"nvidia-cuda-nvrtc-cu11","ecosystem":"pypi","requirements":"==11.7.99","direct":true,"kind":"runtime","optional":false},{"id":22718699946,"package_name":"nvidia-cuda-runtime-cu11","ecosystem":"pypi","requirements":"==11.7.99","direct":true,"kind":"runtime","optional":false},{"id":22718699984,"package_name":"nvidia-cudnn-cu11","ecosystem":"pypi","requirements":"==8.5.0.96","direct":true,"kind":"runtime","optional":false},{"id":22718699985,"package_name":"nvidia-cufft-cu11","ecosystem":"pypi","requirements":"==10.9.0.58","direct":true,"kind":"runtime","optional":false},{"id":22718699986,"package_name":"nvidia-curand-cu11","ecosystem":"pypi","requirements":"==10.2.10.91","direct":true,"kind":"runtime","optional":false},{"id":22718699987,"package_name":"nvidia-cusolver-cu11","ecosystem":"pypi","requirements":"==11.4.0.1","direct":true,"kind":"runtime","optional":false},{"id":22718699988,"package_name":"nvidia-cusparse-cu11","ecosystem":"pypi","requirements":"==11.7.4.91","direct":true,"kind":"runtime","optional":false},{"id":22718699989,"package_name":"nvidia-nccl-cu11","ecosystem":"pypi","requirements":"==2.14.3","direct":true,"kind":"runtime","optional":false},{"id":22718699990,"package_name":"nvidia-nvtx-cu11","ecosystem":"pypi","requirements":"==11.7.91","direct":true,"kind":"runtime","optional":false},{"id":22718699991,"package_name":"oauthlib","ecosystem":"pypi","requirements":"==3.2.2","direct":true,"kind":"runtime","optional":false},{"id":22718700023,"package_name":"onnx","ecosystem":"pypi","requirements":"==1.14.0","direct":true,"kind":"runtime","optional":false},{"id":22718700024,"package_name":"onnxruntime-gpu","ecosystem":"pypi","requirements":"==1.15.0","direct":true,"kind":"runtime","optional":false},{"id":22718700025,"package_name":"opencv-python","ecosystem":"pypi","requirements":"==4.6.0.66","direct":true,"kind":"runtime","optional":false},{"id":22718700026,"package_name":"opencv-python-headless","ecosystem":"pypi","requirements":"==4.6.0.66","direct":true,"kind":"runtime","optional":false},{"id":22718700027,"package_name":"pandas","ecosystem":"pypi","requirements":"==2.0.3","direct":true,"kind":"runtime","optional":false},{"id":22718700028,"package_name":"pathtools","ecosystem":"pypi","requirements":"==0.1.2","direct":true,"kind":"runtime","optional":false},{"id":22718700035,"package_name":"pillow","ecosystem":"pypi","requirements":"==9.3.0","direct":true,"kind":"runtime","optional":false},{"id":22718700037,"package_name":"prettytable","ecosystem":"pypi","requirements":"==3.8.0","direct":true,"kind":"runtime","optional":false},{"id":22718700038,"package_name":"protobuf","ecosystem":"pypi","requirements":"==3.20.2","direct":true,"kind":"runtime","optional":false},{"id":22718700044,"package_name":"psutil","ecosystem":"pypi","requirements":"==5.9.3","direct":true,"kind":"runtime","optional":false},{"id":22718700045,"package_name":"pyasn1","ecosystem":"pypi","requirements":"==0.5.0","direct":true,"kind":"runtime","optional":false},{"id":22718700046,"package_name":"pyasn1-modules","ecosystem":"pypi","requirements":"==0.3.0","direct":true,"kind":"runtime","optional":false},{"id":22718700082,"package_name":"pycocotools","ecosystem":"pypi","requirements":"==2.0.6","direct":true,"kind":"runtime","optional":false},{"id":22718700083,"package_name":"pydantic","ecosystem":"pypi","requirements":"==1.10.7","direct":true,"kind":"runtime","optional":false},{"id":22718700124,"package_name":"pygeos","ecosystem":"pypi","requirements":"==0.13","direct":true,"kind":"runtime","optional":false},{"id":22718700184,"package_name":"pyparsing","ecosystem":"pypi","requirements":"==3.1.0","direct":true,"kind":"runtime","optional":false},{"id":22718700185,"package_name":"pyproj","ecosystem":"pypi","requirements":"==3.4.0","direct":true,"kind":"runtime","optional":false},{"id":22718700186,"package_name":"pystac","ecosystem":"pypi","requirements":"==1.6.1","direct":true,"kind":"runtime","optional":false},{"id":22718700271,"package_name":"python-dotenv","ecosystem":"pypi","requirements":"==1.0.0","direct":true,"kind":"runtime","optional":false},{"id":22718700283,"package_name":"pytz","ecosystem":"pypi","requirements":"==2023.3","direct":true,"kind":"runtime","optional":false},{"id":22718700284,"package_name":"pywavelets","ecosystem":"pypi","requirements":"==1.4.1","direct":true,"kind":"runtime","optional":false},{"id":22718700359,"package_name":"pyyaml","ecosystem":"pypi","requirements":"==5.4.1","direct":true,"kind":"runtime","optional":false},{"id":22718700360,"package_name":"qudida","ecosystem":"pypi","requirements":"==0.0.4","direct":true,"kind":"runtime","optional":false},{"id":22718700398,"package_name":"rasterio","ecosystem":"pypi","requirements":"==1.3.7","direct":true,"kind":"runtime","optional":false},{"id":22718700399,"package_name":"rastervision","ecosystem":"pypi","requirements":"==0.21","direct":true,"kind":"runtime","optional":false},{"id":22718700486,"package_name":"rastervision-aws-batch","ecosystem":"pypi","requirements":"==0.21","direct":true,"kind":"runtime","optional":false},{"id":22718700487,"package_name":"rastervision-aws-s3","ecosystem":"pypi","requirements":"==0.21","direct":true,"kind":"runtime","optional":false},{"id":22718700488,"package_name":"rastervision-core","ecosystem":"pypi","requirements":"==0.21","direct":true,"kind":"runtime","optional":false},{"id":22718700489,"package_name":"rastervision-pipeline","ecosystem":"pypi","requirements":"==0.21","direct":true,"kind":"runtime","optional":false},{"id":22718700490,"package_name":"rastervision-pytorch-backend","ecosystem":"pypi","requirements":"==0.21","direct":true,"kind":"runtime","optional":false},{"id":22718700617,"package_name":"rastervision-pytorch-learner","ecosystem":"pypi","requirements":"==0.21","direct":true,"kind":"runtime","optional":false},{"id":22718700618,"package_name":"regex","ecosystem":"pypi","requirements":"==2023.8.8","direct":true,"kind":"runtime","optional":false},{"id":22718700619,"package_name":"requests","ecosystem":"pypi","requirements":"==2.31.0","direct":true,"kind":"runtime","optional":false},{"id":22718700940,"package_name":"requests-oauthlib","ecosystem":"pypi","requirements":"==1.3.1","direct":true,"kind":"runtime","optional":false},{"id":22718700947,"package_name":"rsa","ecosystem":"pypi","requirements":"==4.7.2","direct":true,"kind":"runtime","optional":false},{"id":22718700948,"package_name":"s3transfer","ecosystem":"pypi","requirements":"==0.6.1","direct":true,"kind":"runtime","optional":false},{"id":22718700949,"package_name":"safetensors","ecosystem":"pypi","requirements":"==0.3.3","direct":true,"kind":"runtime","optional":false},{"id":22718700950,"package_name":"scikit-image","ecosystem":"pypi","requirements":"==0.19.3","direct":true,"kind":"runtime","optional":false},{"id":22718700951,"package_name":"scikit-learn","ecosystem":"pypi","requirements":"==1.2.2","direct":true,"kind":"runtime","optional":false},{"id":22718700952,"package_name":"scipy","ecosystem":"pypi","requirements":"==1.10.1","direct":true,"kind":"runtime","optional":false},{"id":22718700953,"package_name":"sentry-sdk","ecosystem":"pypi","requirements":"==1.29.2","direct":true,"kind":"runtime","optional":false},{"id":22718701015,"package_name":"setproctitle","ecosystem":"pypi","requirements":"==1.3.2","direct":true,"kind":"runtime","optional":false},{"id":22718701026,"package_name":"setuptools","ecosystem":"pypi","requirements":"==68.0.0","direct":true,"kind":"runtime","optional":false},{"id":22718701061,"package_name":"shapely","ecosystem":"pypi","requirements":"==2.0.1","direct":true,"kind":"runtime","optional":false},{"id":22718701062,"package_name":"smmap","ecosystem":"pypi","requirements":"==5.0.0","direct":true,"kind":"runtime","optional":false},{"id":22718701063,"package_name":"snuggs","ecosystem":"pypi","requirements":"==1.4.7","direct":true,"kind":"runtime","optional":false},{"id":22718701109,"package_name":"sympy","ecosystem":"pypi","requirements":"==1.12","direct":true,"kind":"runtime","optional":false},{"id":22718701110,"package_name":"tensorboard","ecosystem":"pypi","requirements":"==2.13.0","direct":true,"kind":"runtime","optional":false},{"id":22718701111,"package_name":"tensorboard-data-server","ecosystem":"pypi","requirements":"==0.7.2","direct":true,"kind":"runtime","optional":false},{"id":22718701148,"package_name":"tensorboard-plugin-wit","ecosystem":"pypi","requirements":"==1.8.1","direct":true,"kind":"runtime","optional":false},{"id":22718701149,"package_name":"threadpoolctl","ecosystem":"pypi","requirements":"==3.2.0","direct":true,"kind":"runtime","optional":false},{"id":22718701150,"package_name":"tifffile","ecosystem":"pypi","requirements":"==2023.7.10","direct":true,"kind":"runtime","optional":false},{"id":22718701151,"package_name":"timm","ecosystem":"pypi","requirements":"==0.4.12","direct":true,"kind":"runtime","optional":false},{"id":22718701152,"package_name":"tokenizers","ecosystem":"pypi","requirements":"==0.13.3","direct":true,"kind":"runtime","optional":false},{"id":22718701153,"package_name":"torch","ecosystem":"pypi","requirements":"==2.0.1","direct":true,"kind":"runtime","optional":false},{"id":22718701154,"package_name":"torch-summary","ecosystem":"pypi","requirements":"==1.4.5","direct":true,"kind":"runtime","optional":false},{"id":22718701155,"package_name":"torchmetrics","ecosystem":"pypi","requirements":"==1.2.0","direct":true,"kind":"runtime","optional":false},{"id":22718701214,"package_name":"torchvision","ecosystem":"pypi","requirements":"==0.15.2","direct":true,"kind":"runtime","optional":false},{"id":22718701215,"package_name":"tqdm","ecosystem":"pypi","requirements":"==4.65.0","direct":true,"kind":"runtime","optional":false},{"id":22718701216,"package_name":"transformers","ecosystem":"pypi","requirements":"==4.32.1","direct":true,"kind":"runtime","optional":false},{"id":22718701217,"package_name":"triangle","ecosystem":"pypi","requirements":"==20220202","direct":true,"kind":"runtime","optional":false},{"id":22718701483,"package_name":"triton","ecosystem":"pypi","requirements":"==2.0.0","direct":true,"kind":"runtime","optional":false},{"id":22718701484,"package_name":"typing-extensions","ecosystem":"pypi","requirements":"==4.6.3","direct":true,"kind":"runtime","optional":false},{"id":22718701515,"package_name":"tzdata","ecosystem":"pypi","requirements":"==2023.3","direct":true,"kind":"runtime","optional":false},{"id":22718701534,"package_name":"urllib3","ecosystem":"pypi","requirements":"==1.26.16","direct":true,"kind":"runtime","optional":false},{"id":22718701651,"package_name":"wandb","ecosystem":"pypi","requirements":"==0.15.8","direct":true,"kind":"runtime","optional":false},{"id":22718701652,"package_name":"werkzeug","ecosystem":"pypi","requirements":"==2.3.6","direct":true,"kind":"runtime","optional":false},{"id":22718701653,"package_name":"wheel","ecosystem":"pypi","requirements":"==0.40.0","direct":true,"kind":"runtime","optional":false},{"id":22718701654,"package_name":"widgetsnbextension","ecosystem":"pypi","requirements":"==4.0.9","direct":true,"kind":"runtime","optional":false},{"id":22718701672,"package_name":"xarray","ecosystem":"pypi","requirements":"==2023.2.0","direct":true,"kind":"runtime","optional":false}]}],"score":3.58351893845611,"created_at":"2025-01-04T00:18:40.638Z","updated_at":"2026-05-14T23:30:18.883Z","avatar_url":"https://github.com/BerkeleySandProject.png","language":"Jupyter Notebook","category":"Natural Resources","sub_category":"Soil and Land","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# Sand Mining Watch \n[Website](http://www.globalpolicy.science/sand-mining-watch) | [NeurIPS-CCAI presentation](https://neurips.cc/virtual/2023/76963)\n\n\nDeep learning methodology to detect sand mines [work in progress].\n\nAs the major ingredient of concrete and asphalt, sand is vital to economic growth and will play a key role in aiding the transition to a low carbon society. However, excessive and unregulated sand mining in the Global South has high socio-economic and environmental costs, and amplifies the effects of climate change. Sand mines are characterized by informality and high temporal variability, and data on the location and extent of these mines tends to be sparse. We provide a custom sand-mine detection tool by fine-tuning foundation models for earth observation, which leverage self supervised learning - a cost-effective and powerful approach in sparse data regimes. These tools allow for real-time monitoring of sand mining activity and can enable more effective policy and regulation.\n\n\n![panel1](https://github.com/BerkeleySandProject/sandmining-watch/assets/2422530/50def1fa-52b9-4d8d-8c9d-d655d03ecaef)\n\n## Datasets\nWe have acquired data (latitude, longitude, timestamp) on sand mining activities across 21 different river basins across India, through a partnership with Veditum India Foundation. Currently, these data cover 39 distinct mining sites; we expect to expand this to over 100 sites over the course\nof our study. We extract image patches (ranging in size from 2.5 sq.km to 582 sq.km) from freely available Sentinel-2 multi-spectral and Sentinel-1 synthetic aperture radar imagery around visually recognizable sand mining footprints at each site3. A majority of Indian rivers are characterized by high average flood discharges and large temporal variability, leading to huge intra-annual variation in sand deposition rates and mining footprints. We consider these changes to be strong natural label augmentations (figure above, inset 1). This allows us to obtain multiple labels (of arbitrary size) for each location that represent the seasonal lifecycle of sand mines. While sub-meter resolution imagery (figure above, inset 2) captures more precise information on mining activity, we believe that 10m imagery will prove to be an effective feature set since it captures broad patterns of importance (i.e. scarring, pitting and flooding) at high temporal \u0026 spectral resolution.\n\n\n## System Design\n![System-Diagram](https://github.com/BerkeleySandProject/sandmining-watch/assets/2422530/a72e09c8-1c81-49e3-858a-dfb8c9375a85)\n\nThe system diagram is shown above. It consists of a data generation stage (upper half) and a data modeling stage (lower half).\n\n\n#### Install conda enviroment\n```\nconda env create -f environment.yml\n```\n\n#### Structure of the repository\n\n`label/` contains the labeling pipeline:\n- `observation_selector.ipynb` exports Sentinel-1/2 data from Google Earth Engine to Google Cloud Platform (GCP) Storage\n- `create_labelbox_dataset.ipynb` populates Labelbox dataset with pointers (URLs) to GCP\n- `export_annotations.ipynb` exports annotations from Labelbox as GeoJSONs to GCP\n- `aoi_generator.ipynb` populates GCP with coordinates of river boundaries with buffer\n\n\n`train_eval/train_eval.ipynb` trains and evaluates models.\n\n`inference/inference.ipynb` runs predictions on dataset without annotations.\n\n`project_config.py` holds configuration that is valid for the entire project.\n\nObjects of the class `SupervisedTrainingConfig` (defined in `experiment_configs/schemas.py`) hold configuration for a single training run.\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/307075","html_url":"https://ost.ecosyste.ms/projects/307075"}