Author: Sean Gillies Version: 1.0
This document describes a GeoJSON-like protocol for geo-spatial (GIS) vector data.
{ | |
"metadata": { | |
"name": "", | |
"signature": "sha256:682c5519bdf342660804b052a5fae80460925acb64a8eed37c1e2caf8ac791c1" | |
}, | |
"nbformat": 3, | |
"nbformat_minor": 0, | |
"worksheets": [ | |
{ | |
"cells": [ |
I return to this issue because it is very similar to How do I find vector line bearing in QGIS or GRASS? and it can be solved with Python in the same way: | |
1) Haversine distance | |
One can find lots of scripts by searching Haversine distance with Python on the Internet and I choose one of them in Haversine Formula in Python (Bearing and Distance between two GPS points) | |
def haversine(lon1, lat1, lon2, lat2): | |
""" | |
Calculate the great circle distance between two points |
If you want to use Python, you don't need QGIS, except if you want to create a plugin. In this case, you should consider PyQGIS with the reference given by Curlew | |
But you can also use Python modules like pyshp, osgeo (gdal and ogr) or Fiona and Shapely without QGIS | |
In both cases, you need a join field that will link the polygon shapefile to the point shapefile. | |
Example with Fiona and Shapely (all the elements of a shapefile (schema,geometry, records) are processed using Python dictionaries). | |
With ogr and Fiona it is easier to create a new shapefile, copying the original shapefile (geometry and attributes), and adding new fields with the desired values than modify the original shapefile. |