GithubHelp home page GithubHelp logo

canglangshushu / open-geo-tutorial Goto Github PK

View Code? Open in Web Editor NEW

This project forked from patrickcgray/open-geo-tutorial

0.0 1.0 0.0 127.2 MB

Tutorial of fundamental remote sensing and GIS methodologies using open source software in python

License: Other

Dockerfile 0.02% HTML 1.27% Shell 0.01% Jupyter Notebook 98.70%

open-geo-tutorial's Introduction

Open Source Geoprocessing Tutorial

Creative Commons License

Tutorial of basic remote sensing and GIS methodologies using modern open source software in Python (rasterio, shapely, GeoPandas, folium, etc). Notebooks cover raster processing, vector analysis, and a workflow to perform image classification using machine learning classifiers in scikit-learn:

All chapters are available as jupyter notebooks in the notebooks/ directory or viewable via a normal web browser in HTML:

  1. Introduction [HTML]
  2. The GDAL datatypes and objects [HTML]
  3. Your first vegetation index [HTML]
  4. Visualizing data [HTML]
  5. Vector data - the OGR library [HTML]
  6. Land cover classification [HTML]
  7. More to come!!!

I strongly recommend using docker and downloading the jupyter notebooks so you can play as you read along, otherwise you will quickly forget these tools.

Some of the things you'll learn:

Raster Operations, Processing, and Visualization

Interactive Shapefile and Raster Visualization

Machine Learning based Satellite Image Classification

Download

Materials and data for these lessons are included inside this repository under the data/ directory. I would recommend downloading all of the lesson material at once, instead of downloading individual files.

Two ways to download the entire repository include:

  • Use git to clone the repository (recommended)
  • Downloading and extracting a ZIP file of the 'master' branch

Python Installation

To run the Jupyter Notebooks (formerly known as IPython Notebooks) and follow the tutorial locally, you will need to install Python and the libraries used in the tutorials. This installation can be accomplished in many ways, but I will list the two most common approaches:

conda

No matter what setup you have I recommend using the Anaconda Python distribution to make installation of the tutorial dependencies less complicated. After installing Anaconda or "miniconda" by following their instructions, you can install the dependencies as follows:

conda env create -f environment.yml
source activate open-geo-tutorial

docker - recommended method

I highly recommend trying out Docker if you're not familiar with it. There is a bit of a startup time just for getting up to speed but it is the way to go for reproducible work. Docker provides operating-system-level virtualization, also known as "containerization" and thus you can be sure that your setup precisely replicates the one used here and will easily run everything. Once you've downloaded Docker you can simply cd into the cloned git repo and run:

docker build -t open-geo .

which will pull the Dockerfile from the current location and create an OS image called 'open-geo' from it and then to create the container run this from the top of the git repo:

docker run --name geo-cont -e JUPYTER_NOTEBOOK_PASSWORD="foobar" -p 8888:8888 -v "$PWD:/opt/notebooks" -it open-geo

which will start a container called 'geo-cont' based on the 'open-geo' image, then it will mount the repo directory to the container's /opt/notebooks directory where you can go access this repo's jupyter notebooks.

open-geo-tutorial's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.