{"id":13734183,"url":"https://github.com/cfranken/SIF_tools","last_synced_at":"2025-05-08T10:31:03.276Z","repository":{"id":112670282,"uuid":"46748732","full_name":"cfranken/SIF_tools","owner":"cfranken","description":"some tools for accessing OCO-2 data","archived":false,"fork":false,"pushed_at":"2021-02-04T20:25:41.000Z","size":1504,"stargazers_count":43,"open_issues_count":0,"forks_count":24,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-10T01:38:11.580Z","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/cfranken.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}},"created_at":"2015-11-23T21:20:57.000Z","updated_at":"2025-03-23T14:46:26.000Z","dependencies_parsed_at":"2023-06-19T04:50:06.126Z","dependency_job_id":null,"html_url":"https://github.com/cfranken/SIF_tools","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfranken%2FSIF_tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfranken%2FSIF_tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfranken%2FSIF_tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfranken%2FSIF_tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cfranken","download_url":"https://codeload.github.com/cfranken/SIF_tools/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253045645,"owners_count":21845742,"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"}},"keywords":[],"created_at":"2024-08-03T03:00:53.283Z","updated_at":"2025-05-08T10:31:02.742Z","avatar_url":"https://github.com/cfranken.png","language":"Jupyter Notebook","funding_links":[],"categories":["`Python` processing of optical imagery (non deep learning)"],"sub_categories":["Processing imagery - post processing"],"readme":"# SIF tools\n\nThe public github repository was created to support a fluorescence application workshop at AGU 2018: https://agu.confex.com/agu/fm18/meetingapp.cgi/Session/54189\n\nThe main purpose of the examples and tools provided here is to help users not yet familiar with SIF data to learn about its use, the pitfalls and what programming tools are necessary. Some script programming experience is necessary to work with satellite data anyhow and we opted to used open source software, using either python and R. Jupyter notebooks for python (as well as Julia, etc) provide an ideal way to walk you through some of the code with explanations and example datasets. Note that most of the coding was done shortly before the workshop, so things mights be in a state of flux. Also, we used the GPLv3 public license for the code provided here, it would be good to make this a community resource and we would highly appreciate it if any imporvements can be shared with us so that updates will be available to the growing SIF community.\n\nRequirements: You will need the following python libraries for sure:\n\nh5py, netCDF4, numpy, matplotlib\n\n----\n\n### Download data:\n#### ftp://fluo.gps.caltech.edu/data/AGU_workshop/ \nThis provides a quick link to tar'ed directories (careful, large files!). You can download these and extract them on your computer.\n\nTraditional download: Paths for all OCO-2 and TROPOMI data: ftp://fluo.gps.caltech.edu/data/\u003csatellite\u003e. The scripts will only focus on April through October 2018 (overlapping time period for TROPOMI and OCO-2)\n\n----\n\nFor the python examples, please ensure that you have python3 and Jupyter notebooks installed: A basic intro is here:\nhttps://jupyter.readthedocs.io/en/latest/install.html\n\n----\n\n### Building the Docker Container for Running Notebooks\n\nnavigate to the repo's dir e.g.\n\n`cd SIF_tools`\n\nBuild a Docker image called \u003cimage name\u003e from the Dockerfile in this repo \n\n`sudo docker build -t \u003cimage name\u003e .`\n\nNow create a container named \u003ccontainer name\u003e  from that image, expose port 8888 for jupyter, and then mount your local user's home dir to /host so you can see all your code. If that port is already in use you’ll see an error that looks like: ’Bind for 0.0.0.0:8888 failed: port is already allocated.’\n\n`sudo docker run --name \u003ccontainer name\u003e -p 8888:8888 -v ~/:/host -it \u003cimage name\u003e`\n\nTo stop the container run\n\n`sudo docker stop \u003ccontainer name\u003e` \n\nOr if you are in the container you can just type `exit`\n\nTo restart it run \n\n`sudo docker start \u003ccontainer name\u003e`\n\nAnd to attach the command line of this container run to your terminal run\n\n`sudo docker attach \u003ccontainer name\u003e`\n\nNow you’re ready to develop! You can start a jupyter notebook server from the Docker container command line with:\n\n`jupyter notebook --allow-root /host --ip 0.0.0.0`\n\nYou’ll now be able to access your jupyter notebooks by navigating your browser to the address 127.0.0.1:\u003cport\u003e where the port is the one you specified above (e.g. 8888). The Docker container had your regular directories mounted at /host and because we’ve told the jupyter notebook with the above command to use /host as the root directory you should see all your files just like you would on your own computer but now you can access them from Docker.\n\n### Using Conda to Run Notebooks\n\nConda is slightly easier but sometimes less reproducible and scalable. If you have conda installed you can create a conda environment to run these notebooks with:\n\n`conda env create -f /tmp/environment.yml`\n\nThen start that env by running:\n\n`source activate earthml`\n\nOnce that environment is active you can just run:\n\n`jupyter notebook`\n\n![NIR pic of Oak tree in front of Linde center](http://web.gps.caltech.edu/~cfranken/linde_small.jpg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcfranken%2FSIF_tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcfranken%2FSIF_tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcfranken%2FSIF_tools/lists"}