Giter Site home page Giter Site logo

geodepy's Introduction

GeodePy

Travis Coverage Status

This is a package of tools for manipulating geospatial datasets using Python and tested in Python 3.6.4.

Tutorials

See here for worked examples of common GeodePy functions and routines.

Dependencies

This package requires the following PyPI Packages installed:

NumPy
SciPy

Additionally, the geodepy.height module requires the GDAL library (tested using GDAL 3.0.4). For more information, see here for information about GDAL, here for Anaconda support for GDAL and here for GDAL Binaries for Windows.

Testing

Run: python -m unittest discover geodepy/tests/ --verbose

API

cd api/
virtualenv env
source env/bin/activate
pip install -r requirements.txt
zappa deploy dev

For subsequent updating run: zappa update dev

Authors

  • Craig Harrison - Project Management - harry093
  • Josh Batchelor - Initial Work, Geodesy and Surveying - BatchelorJ
  • Jonathan Mettes - Testing, Integration and Deployment - jmettes
  • Jack McCubbine - Height Module - JackMcCubbineGA

See also the list of contributors who participated in this project.

License

Copyright 2018-2020 Geoscience Australia

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

geodepy's People

Contributors

adeane-ga avatar batchelorj avatar c-mckenna avatar harry093 avatar jackmccubbinega avatar jaimiedodd avatar jmettes avatar jonathonpsmith avatar kentwheeler avatar mcgarth avatar nicgowans avatar sgv-geodesy avatar suv27 avatar tengkunuddin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

geodepy's Issues

dms2dd bug

dms2dd is outputting incorrect results in limited examples.

Found with input 133deg 48min 00sec, giving incorrect output of 133.81111111111107decdeg instead of correct output of 133.8decdeg.

I believe this is an issue with rounding in the output of modf parts of the function used to separate out the degrees, minutes and seconds components of the input.

Read & Search Geoid Data

Currently geoid data is stored in ASCII .dat and NTv2 .gsb formats. This module requires a way to read this data into a Python data structure (e.g. a NumPy array or PyTable object?) and search through to find specific latitude and longitude values.

capture2

MGA94 <-> MGA2020

It would be good to create a function that strings together all the other necessary functions to do this. Emails to geodesy@ga are making it obvious that people think this is a simple transformation. Required steps:

MGA94<->GDA94 lat/lon<->GDA94 XYZ<->GDA2020 XYZ<->GDA2020 lat/lon<->MGA2020

----

We need to develop this

Add ellipsoid parameters

These can be stored as dictionaries. Would require rewriting dependencies from grs80 in multiple pieces of code

Move ntv2reader module tests

At the bottom of the ntv2reader module there is a test. This should be moved to a file in the geodepy/tests/ directory.

The existing test has a hardcoded path in it. Should this be removed?

Allow epochs in decimal years

Currently, only datetime.date objects are accepted to function that require an epoch. Extend code to accept decimal years

Grid Interpolation

Requires #16
Uses data from transformation grid files to interpolate (bilinear and/or bicubic) between grid points and return a set of values at a specified point.

vincdir: Geodesics crossing 180th meridian

Currently, where the geodesic path crosses the 180th meridian, the resulting long2 will be > 180°. Possibly this issue may affect geodesics crossing the prime meridian resulting in long2 < 0°.

Integer Negative Zero issue in DMSAngle and DDMAngle classes

When entering the degree component of a DMSAngle(degree, minute, second) or DDMAngle(degree, minute) object, if the degree component is between -1 and 0 (i.e. DMSAngle(-0,12,14)) this will incorrectly convert this to a positive value. This is because python interprets the input '-0' as an int with value 0 and does not retain the sign of this variable.

Tidy up convert.py

  • Move dec2hp and hp2dec to below the class definitions
  • Remove legacy functions (use PyCharm to find usages, if any, first)
  • Ask Jack about dd2dms_v and dms2dd_v
  • Move class DNACoord up with the other classes

Surveying observation equations

  • Slope distance (S)
  • Ellipsoid arc distance (E)
  • Ellipsoid chord distance (C)
  • Mean sea level arc distance (M)
  • Ellipsoid heights (R) and height differences
  • Orthometric heights (H)
  • Orthometric height differences (L)
  • Cartesian coordinates and GNSS point clusters (Y)
  • GNSS baselines (G)
  • GNSS baseline clusters (X)
  • Geodetic latitude (P) and longitude (Q)
  • Geodetic azimuths and horizontal bearings (B)
  • Horizontal angles (A)
  • Horizontal direction sets (D)
  • Zenith distances (V)
  • Vertical angles (Z)
  • Astronomic latitude (I) and longitude (J)
  • Astronomic (Laplace) azimuth (K)

Review GDAL Dependency

The package dependency on GDAL is making installation with pip a bit of a nightmare. Is GDAL required, or is there an alternative pure-python package we could use?

Add ATRF to GDA2020 parameters

Can you please updates the Constant.py script to include ATRF to GDA2020 parameters. This should be a copy and paste of the ITRF2014 to GDA2020 parameters?

Please also include the comment that the parameters (for both) are derived from the Australian Plate Motion Model based on 109 reference stations in Australia.

Tidy up constants.py

Remove c_vac and k_0 - these were only ever added to give the initial version of the module some content :-)

Tidy up geodesy.py

Remove vindirio() & vininvio() (use PyCharm to find usages, if any, first)

Simplify Angular Conversions

There are currently 8 different functions for converting between angular data formats. Some of these duplicate functionality. These functions should be rewritten and renamed to avoid confusion.

----

Github is shit

Add Helmert Transformation Parameters

These are being added into the Constants module as a Transformation Class object

  • GDA94 to GDA2020
  • ITRF14 to GDA2020
    From Dawson and Woods
  • ITRF08 to GDA94
  • ITRF05 to GDA94
  • ITRF00 to GDA94
  • ITRF97 to GDA94
  • ITRF96 to GDA94
    From GDA94 Tech Manual
  • AGD66/84 to GDA94
    From IERS
  • All current ITRFxx to ITRFyy

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.