{"id":16962,"name":"STOQS","description":"Geospatial database visualization software for oceanographic measurement data.","url":"https://github.com/stoqs/stoqs","last_synced_at":"2026-04-07T02:30:37.002Z","repository":{"id":28666291,"uuid":"32185902","full_name":"stoqs/stoqs","owner":"stoqs","description":"Geospatial database visualization software for oceanographic measurement data","archived":false,"fork":false,"pushed_at":"2026-01-27T23:54:56.000Z","size":244745,"stargazers_count":43,"open_issues_count":36,"forks_count":39,"subscribers_count":14,"default_branch":"master","last_synced_at":"2026-01-28T13:08:44.439Z","etag":null,"topics":["auv","geospatial-database","measurements","oceanography","robots","vagrant","virtual-machine","visualization","web-app"],"latest_commit_sha":null,"homepage":"http://www.stoqs.org","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/stoqs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2015-03-13T23:15:03.000Z","updated_at":"2026-01-27T23:55:01.000Z","dependencies_parsed_at":"2023-10-05T06:33:57.194Z","dependency_job_id":"209cba01-9fe8-4885-bb98-b514ccc386e4","html_url":"https://github.com/stoqs/stoqs","commit_stats":{"total_commits":8000,"total_committers":48,"mean_commits":"166.66666666666666","dds":0.584625,"last_synced_commit":"e17d484f02d7aa593bc8c089eb4680532fe26561"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/stoqs/stoqs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stoqs%2Fstoqs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stoqs%2Fstoqs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stoqs%2Fstoqs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stoqs%2Fstoqs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stoqs","download_url":"https://codeload.github.com/stoqs/stoqs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stoqs%2Fstoqs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30255298,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-08T08:59:44.879Z","status":"ssl_error","status_checked_at":"2026-03-08T08:58:02.867Z","response_time":56,"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":"stoqs","name":"Spatial Temporal Oceanographic Query System","uuid":"7399548","kind":"user","description":"Oceanographic data visualization software","email":"","website":"http://www.stoqs.org","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/7399548?u=88b47a5e1620ef54ba6948cf47ea347fe591d357\u0026v=4","repositories_count":2,"last_synced_at":"2023-02-28T18:17:22.239Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/stoqs","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-11T19:56:13.128Z","updated_at":"2023-02-28T18:17:22.242Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stoqs","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stoqs/repositories"},"packages":[],"commits":{"id":1332201,"full_name":"stoqs/stoqs","default_branch":"master","total_commits":8034,"total_committers":45,"total_bot_commits":3,"total_bot_committers":1,"mean_commits":178.53333333333333,"dds":0.5288772715957182,"past_year_total_commits":23,"past_year_total_committers":2,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":11.5,"past_year_dds":0.08695652173913049,"last_synced_at":"2025-10-29T08:54:01.527Z","last_synced_commit":"c15056b2085c8809ea35c96c8b94a333ff06e795","created_at":"2023-09-11T17:13:37.595Z","updated_at":"2025-10-29T08:50:00.605Z","committers":[{"name":"Mike McCann","email":"MBARIMike@gmail.com","login":"MBARIMike","count":3785},{"name":"Mike McCann MBARIMike","email":"Mike McCann MBARIMike@gmail.com","login":null,"count":2020},{"name":"pyup-bot","email":"github-bot@pyup.io","login":"pyup-bot","count":1571},{"name":"Danelle Cline","email":"dcline@mbari.org","login":"danellecline","count":153},{"name":"duane-edgington","email":"duane@mbari.org","login":"duane-edgington","count":141},{"name":"schramm r","email":"schramm.r@gmail.com","login":"rschramm9","count":59},{"name":"Francisco Lopez","email":"flcastej@gmail.com","login":null,"count":53},{"name":"Chander Ganesan","email":"chander@otg-nc.com","login":"chander","count":46},{"name":"rkahnMBARI","email":"rachelkahn890@gmail.com","login":"rekahn","count":28},{"name":"Spatial Temporal Oceanographic Query System","email":"stoqsadm@gmail.com","login":"stoqs","count":22},{"name":"Carlos Rueda","email":"carueda@mbari.org","login":"carueda","count":20},{"name":"Juan Vargas","email":"791171@gmail.com","login":"juanv911","count":17},{"name":"Samuel Villavicencio","email":"samuelrey010@gmail.com","login":"samuelrey","count":10},{"name":"John Ryan john ryan555","email":"John Ryan john.ryan555@gmail.com","login":null,"count":9},{"name":"Danelle Cline","email":"danelle.cline%40att.net@localhost","login":null,"count":9},{"name":"leobardo","email":"lelara@csubm.edu","login":"leo831","count":8},{"name":"noemicuin","email":"noemicuin@yahoo.com","login":"noemicuin","count":7},{"name":"Bilal Sattar","email":"bilalsattar24@gmail.com","login":"bilalsattar24","count":7},{"name":"Jose Sanchez","email":"josesanchez1@csumb.edu","login":"J0S349","count":7},{"name":"Tanner Yost","email":"tyost@csumb.edu","login":null,"count":5},{"name":"Mike McCann","email":"MBAIMike@gmail.com","login":null,"count":5},{"name":"Duane Edgington duane","email":"Duane Edgington duane@mbari.org","login":null,"count":5},{"name":"vagrant","email":"vagrant@localhost.localdomain","login":"invalid-email-address","count":5},{"name":"jergutierrez","email":"jergutierrez@csumb.edu","login":"jergutierrez","count":5},{"name":"Mike McCann","email":"MBARIMike@gmaile.com","login":null,"count":4},{"name":"LeslyGJ","email":"lgarciajimenez@csumb.edu","login":"LeslyGJ","count":4},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":3},{"name":"schramm r","email":"schramm.r@mbari.org","login":null,"count":3},{"name":"Danelle Cline","email":"danelle.cline@att.net","login":null,"count":2},{"name":"odssadm","email":"stoqsadm@kraken.shore.mbari.org","login":null,"count":2},{"name":"schramm r","email":"schramm.r@gmail","login":null,"count":2},{"name":"schramm r","email":"schramm.r@gmai.com","login":null,"count":2},{"name":"CSUMBMike","email":"74073102+CSUMBMike","login":"CSUMBMike","count":2},{"name":"Ike Hirzel","email":"hirzelisaac@gmail.com","login":"isaachirzel","count":2},{"name":"student","email":"student@localhost.localdomain","login":"nrgs","count":1},{"name":"Angel Vasquez","email":"anvasquez@csumb.edu","login":null,"count":1},{"name":"John Ryan","email":"john.ryan555@code.google.com","login":null,"count":1},{"name":"MBARIMike","email":"MBARIMike@localhost","login":null,"count":1},{"name":"ODSS Administrator","email":"odssadm@odss-test.shore.mbari.org","login":null,"count":1},{"name":"Rich Schramm schramm.r","email":"Rich Schramm schramm.r@localhost","login":null,"count":1},{"name":"devonrusconi","email":"drusconi@gcsumb.edu","login":null,"count":1},{"name":"flcastej","email":"flcastej@localhost","login":null,"count":1},{"name":"schramm r","email":"schramm.r@gamil.com","login":null,"count":1},{"name":"Sean Towne","email":"stowne@csumb.edu","login":"seantowne","count":1},{"name":"Andrew McCann","email":"andrew.s.mccann@gmail.com","login":"andrewmccann","count":1}],"past_year_committers":[{"name":"Mike McCann","email":"mccann@mbari.org","login":"MBARIMike","count":21},{"name":"pyup-bot","email":"github-bot@pyup.io","login":"pyup-bot","count":2}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/stoqs%2Fstoqs/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-10-29T00:00:18.766Z","repositories_count":6089244,"commits_count":922489722,"contributors_count":35985767,"owners_count":1109529,"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":"stoqs/stoqs","html_url":"https://github.com/stoqs/stoqs","last_synced_at":"2025-10-16T02:02:03.687Z","status":null,"issues_count":3,"pull_requests_count":180,"avg_time_to_close_issue":1032666.0,"avg_time_to_close_pull_request":366799.89570552146,"issues_closed_count":1,"pull_requests_closed_count":163,"pull_request_authors_count":2,"issue_authors_count":3,"avg_comments_per_issue":7.666666666666667,"avg_comments_per_pull_request":0.20555555555555555,"merged_pull_requests_count":140,"bot_issues_count":0,"bot_pull_requests_count":36,"past_year_issues_count":1,"past_year_pull_requests_count":23,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":282630.5,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":12,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":0.0,"past_year_avg_comments_per_pull_request":0.30434782608695654,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":13,"past_year_merged_pull_requests_count":8,"created_at":"2023-09-11T17:14:11.514Z","updated_at":"2025-10-16T02:02:03.688Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/stoqs%2Fstoqs","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/stoqs%2Fstoqs/issues","issue_labels_count":{},"pull_request_labels_count":{"dependencies":36},"issue_author_associations_count":{"NONE":2,"CONTRIBUTOR":1},"pull_request_author_associations_count":{"CONTRIBUTOR":180},"issue_authors":{"Heroes-18":1,"josephmfaulkner":1,"MBARIMike":1},"pull_request_authors":{"MBARIMike":144,"dependabot[bot]":36},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-10-30T00:00:25.546Z","repositories_count":11263014,"issues_count":35009938,"pull_requests_count":113611200,"authors_count":11042159,"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":{"dependencies":13},"past_year_issue_author_associations_count":{"NONE":1},"past_year_pull_request_author_associations_count":{"CONTRIBUTOR":23},"past_year_issue_authors":{"Heroes-18":1},"past_year_pull_request_authors":{"dependabot[bot]":13,"MBARIMike":10},"maintainers":[],"active_maintainers":[]},"events":{"total":{"IssuesEvent":1,"WatchEvent":1,"DeleteEvent":4,"IssueCommentEvent":16,"PushEvent":5,"PullRequestEvent":20,"ForkEvent":1,"CreateEvent":7},"last_year":{"IssuesEvent":1,"WatchEvent":1,"DeleteEvent":4,"IssueCommentEvent":16,"PushEvent":5,"PullRequestEvent":20,"CreateEvent":7}},"keywords":["auv","geospatial-database","measurements","oceanography","robots","vagrant","virtual-machine","visualization","web-app"],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/ci.yml","sha":null,"kind":"manifest","created_at":"2023-09-21T20:12:55.392Z","updated_at":"2023-09-21T20:12:55.392Z","repository_link":"https://github.com/stoqs/stoqs/blob/master/.github/workflows/ci.yml","dependencies":[{"id":13857376717,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]}],"score":8.17611034223734,"created_at":"2023-09-11T14:42:44.327Z","updated_at":"2026-04-07T02:30:37.015Z","avatar_url":"https://github.com/stoqs.png","language":"Jupyter Notebook","category":"Hydrosphere","sub_category":"Ocean and Hydrology Data Access","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"Spatial Temporal Oceanographic Query System\n-------------------------------------------\n\n[![Build Status](https://travis-ci.org/stoqs/stoqs.svg)](https://travis-ci.org/stoqs/stoqs/branches)\n[![Requirements Status](https://requires.io/github/stoqs/stoqs/requirements.svg?branch=master)](https://requires.io/github/stoqs/stoqs/requirements/?branch=master)\n[![DOI](https://zenodo.org/badge/20654/stoqs/stoqs.svg)](https://zenodo.org/badge/latestdoi/20654/stoqs/stoqs)\n \nSTOQS is a geospatial database and web application designed to give oceanographers\nefficient integrated access to *in situ* measurement and *ex situ* sample data.\nSee http://www.stoqs.org.\n\n#### Getting started with a STOQS development system \n\nFirst, install [Vagrant](https://www.vagrantup.com/) and and [VirtualBox](https://www.virtualbox.org/)\n\u0026mdash; there are standard installers for Mac, Windows, and Linux. (You will also need \n[X Windows System](doc/instructions/XWINDOWS.md) sofware on your computer.) Then create an empty folder off your \nhome directory such as `Vagrants/stoqsvm`, open a command prompt window, cd to that folder, and enter these \ncommands:\n\n```bash\ncurl \"https://raw.githubusercontent.com/stoqs/stoqs/master/Vagrantfile\" -o Vagrantfile\ncurl \"https://raw.githubusercontent.com/stoqs/stoqs/master/provision.sh\" -o provision.sh\nvagrant plugin install vagrant-vbguest\nvagrant up --provider virtualbox\n```\nThe Vagrantfile and provision.sh will provision a development system with an NFS mounted\ndirectory from your host operating system. If your host doesn't support serving files via\nNFS (most Windows hosts don't support NFS file serving) then you'll need to edit these files \nbefore executing `vagrant up`. Look for the `support NFS file serving` comments in these \nfiles for the lines you need to change.\n\nThe `vagrant up` command takes an hour or so to provision and setup a complete CentOS 7 \nSTOQS Virtual Machine that also includes MB-System, InstantReality, and all the Python data science \ntools bundled in packages such as Anaconda.  You will be prompted for your admin password\nfor configuring a shared folder from the VM (unless you've disabled the NFS mount).  All connections to this VM are \nperformed from the the directory you installed it in; you must cd to it (e.g. `cd\n~/Vagrants/stoqsvm`) before logging in with the `vagrant ssh -- -X` command.  After \ninstallation finishes log into your new VM and test it:\n\n```bash\nvagrant ssh -- -X                        # Wait for [vagrant@localhost ~]$ prompt\nexport STOQS_HOME=/vagrant/dev/stoqsgit  # Use STOQS_HOME=/home/vagrant/dev/stoqsgit if not using NFS mount\ncd $STOQS_HOME \u0026\u0026 source venv-stoqs/bin/activate\nexport DATABASE_URL=postgis://stoqsadm:CHANGEME@127.0.0.1:5438/stoqs\n./test.sh CHANGEME load noextraload\n```\n\nIn another terminal window start the development server (after a `cd ~/Vagrants/stoqsvm`):\n\n```bash\nvagrant ssh -- -X                        # Wait for [vagrant@localhost ~]$ prompt\nexport STOQS_HOME=/vagrant/dev/stoqsgit  # Use STOQS_HOME=/home/vagrant/dev/stoqsgit if not using NFS mount\ncd $STOQS_HOME \u0026\u0026 source venv-stoqs/bin/activate\nexport DATABASE_URL=postgis://stoqsadm:CHANGEME@127.0.0.1:5438/stoqs\nstoqs/manage.py runserver 0.0.0.0:8000 --settings=config.settings.local\n```\n\nVisit your server's STOQS User Interface using your host computer's browser:\n\n    http://localhost:8008\n\nMore instructions are in the doc/instructions directory \u0026mdash; see [LOADING](doc/instructions/LOADING.md) \nfor specifics on loading your own data. For example, you may create your own database of an archived MBARI campaign:\n\n    cd stoqs\n    ln -s mbari_campaigns.py campaigns.py\n    loaders/load.py --db stoqs_cce2015\n\nYou are encouraged to contribute to the STOQS project! Please see [CONTRIBUTING](CONTRIBUTING.md)\nfor how to share your work.  Also, see example \n[Jupyter Notebooks](http://nbviewer.jupyter.org/github/stoqs/stoqs/blob/master/stoqs/contrib/notebooks)\nthat demonstrate specific analyses and visualizations that go beyond the capabilities of the STOQS User Interface.\nVisit the [STOQS Wiki pages](https://github.com/stoqs/stoqs/wiki) for updates and links to presentations.\nThe [stoqs-discuss](https://groups.google.com/forum/#!forum/stoqs-discuss) list in Google Groups is also \na good place to ask questions and engage in discussion with the STOQS user and developer communities.\n\nSupported by the David and Lucile Packard Foundation, STOQS undergoes continual development\nto help support the mission of the Monterey Bay Aquarium Research Institue.  If you have your\nown server you will occasionally want to get new features with:\n\n```bash\ngit pull\n```\n\n#### Production Deployment with Docker\n\nFirst, install [Docker](https://www.docker.com/) and [docker-compose](https://docs.docker.com/compose/install/)\non your system.  Then clone the repository; in the docker directory copy the `template.env` file to `.env` \nand edit it for your specific installation, then execute `docker-compose up`:\n\n```bash\ngit clone https://github.com/stoqs/stoqs.git stoqsgit\ncd stoqsgit/docker\ncp template.env .env\nchmod 600 .env      # You must then edit .env and change settings for your environment\ndocker-compose up\n```\nIf the directory set to the STOQS_VOLS_DIR variable in your .env file doesn't exist then the \nexecution of `docker-compose up` will create the postgresql database cluster, load a default \nstoqs database, and execute the unit and functional tests of the stoqs application.  If you\ndon't see these tests being executed (they will take several minutes) then check for error\nmessages.\n\nOnce you see `... [emperor] vassal /etc/uwsgi/django-uwsgi.ini is ready to accept requests`\nyou can visit the site at https://localhost \u0026mdash; it uses a self-signed certificate, so your\nbrowser will complain and you will need to add an exception. (The nginx service also delivers \nthe same app at http://localhost:8000 without the certificate issue.)\n\nThe default settings in `template.env` will run a production nginx/uwsgi/stoqs server configured\nfor https://localhost in a Vagrant virtual machine. To configure a server for intranet or public serving of\nyour data follow the instructions provided in the comments for the settings in your `.env` file.\nAfter editing your `.env` file you will need to rebuild the images and restart the Docker \nservices, this time with the `-d` option to run the containers in the background:\n\n```bash\ndocker-compose build\ndocker-compose up -d\n```\n\nThe above commands should also be done following a `git pull` in order to deploy updated\nsoftware on your server.\n\nOne thing that's good to do is monitor logs and check for error messages, this can be done with:\n\n```\ndocker-compose logs -f\n```\n\n#### Using STOQS in Docker\n\nYou can execute Python code in the stoqs server from your host by prefacing it with `docker-compose exec stoqs`\n(Use `docker-compose run stoqs` to launch another container for long-running processes), for \nexample to load some existing MBARI campaign data:\n\n```bash\ndocker-compose run stoqs stoqs/loaders/load.py --db stoqs_simz_aug2013\n```\n\n(To load MBARI Campaigns you will need to have uncommented the `CAMPAIGNS_MODULE=stoqs/mbari_campaigns.py` \nline in your .env file. Make sure that you do not have a symbolic link named `campaigns.py` in the stoqs \ndirectory. This is needed only for a Vagrant development machine \u0026mdash; it's best to keep the directory used\nfor a Docker deployment separate from one used for Vagrant.)\n\nIn another window monitor its output:\n\n```bash\ndocker-compose run stoqs tail -f /srv/stoqs/loaders/MolecularEcology/loadSIMZ_aug2013.out\n# Or (The stoqs code is bound as a volume in the container from the GitHub cloned location)\ntail -f stoqsgit/stoqs/loaders/MolecularEcology/loadSIMZ_aug2013.out\n```\n\nYou may also use `pg_restore` to more quickly load an existing Campaign database on your system.\nFor instructions click on the Campaign name in the top bar of a Campaign on another STOQS server, \nfor example on [MBARI's Public STOQS Server](https://stoqs.mbari.org).\n\n\n\nIf you use STOQS for your research please cite this publication:\n\n\u003e McCann, M.; Schramm, R.; Cline, D.; Michisaki, R.; Harvey, J.; Ryan, J., \"Using STOQS (The spatial \n\u003e temporal oceanographic query system) to manage, visualize, and understand AUV, glider, and mooring data,\" \n\u003e in *Autonomous Underwater Vehicles (AUV), 2014 IEEE/OES*, pp.1-10, 6-9 Oct. 2014\n\u003e doi: 10.1109/AUV.2014.7054414\n\n![STOQS logo](stoqs/static/images/STOQS_logo_gray1_689.png)\n\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["acoustics"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/16962","html_url":"https://ost.ecosyste.ms/projects/16962"}