laempy / pyoints Goto Github PK
View Code? Open in Web Editor NEWPyoints: A Python package for point cloud, voxel and raster processing.
License: Other
Pyoints: A Python package for point cloud, voxel and raster processing.
License: Other
pyoints/pyoints/storage/RasterHandler.py
Line 147 in be574c9
This should be stated as if wkt != '':
instead of if wkt is not '':
Related to #2 and openjournals/joss-reviews#990, I was also unsuccessful in trying to install from conda (on my local machine: osx and on binder - e.g. try jupyter, which runs linux 64bit). Here is the error log I got:
Solving environment: failed
CondaHTTPError: HTTP 404 NOT FOUND for url <https://conda.anaconda.org/leampy/noarch/repodata.json>
Elapsed: 00:00.148486
CF-RAY: 4968e3cded3fc56a-ORD
The remote server could not find the noarch directory for the
requested channel with url: https://conda.anaconda.org/leampy
As of conda 4.3, a valid channel must contain a `noarch/repodata.json` and
associated `noarch/repodata.json.bz2` file, even if `noarch/repodata.json` is
empty. please request that the channel administrator create
`noarch/repodata.json` and associated `noarch/repodata.json.bz2` files.
$ mkdir noarch
$ echo '{}' > noarch/repodata.json
$ bzip2 -k noarch/repodata.json
You will need to adjust your conda configuration to proceed.
Use `conda config --show channels` to view your configuration's current state.
Further configuration help can be found at <https://conda.io/docs/config.html>.
For the JOSS submission, you do not necessarily have to have this resolved, but I would suggest that in the README, you
git clone https://github.com/laempy/pyoints.git
pip install gdal
# is there a reason this is not listed in your requirements.txt?conda install gdal, pyproj, rtree
pip install -e .
In relation to openjournals/joss-reviews#990
The installation instructions are only written for Ubuntu, although in the text it is somewhat hinted that Windows is also supported.
A clear description of which systems this package is intended for would be nice. Since this is a Python package it (theoretically) should work on at least Linux, OS X and Windows.
I recommend adding a conda environment file and basing the installation instructions on that instead. This will improve the chances of a successful installation immensely.
As a side note, I happen to work on a Mac and am having issues getting started with the installation. This package is not at fault, a mix of homebrew several GDAL and Python installations are complicating things a bit here. This could be avoided with a conda setup.
In relation to openjournals/joss-reviews#990
In text citation for various software packages are done in an incorrect manner. Instead of
Libraries, like (Rusu & Cousins, 2011), (Zhou, Park, & Koltun, 2018) and (PDAL contributors, 2018) focus on 3D point cloud processing.
write
Libraries, like PCL (Rusu & Cousins, 2011), Open3D (Zhou, Park, & Koltun, 2018) and PDAL (PDAL contributors, 2018) focus on 3D point cloud processing.
See here for more examples of correct use of in-text citations.
It would be really helpful in the documentation to include a first example to get new users up and running and doing something with pyoints
. The documentation is really focussed on the API. Having a Getting Started
,User Guide
, or Examples
section with a simple example that produces a plot can help motivate users to explore what they can do with the package. For inspiration, here are a few docs that were recently accepted into JOSS and are well-done:
For the JOSS submission (openjournals/joss-reviews#990), I think clear pointers to a single example from the README or the docs would suffice.
The GeoTIFF spatial reference definition of LAS is currently handled with the optional dependency liblas. So, a way to convert GeoTIFF tags to WKT and vice versa would be nice.
In relation to openjournals/joss-reviews#990
The following reference is missing DOI's:
While running the test-suite I found that three tests failed. The test results are correct but the test fail since the output in the unittest is not reproduced 100% as seen in the output below. We are talking about minor numerical instabilities here. Usually this sort of problem is dealt with by specifying a tolerance for which the requested value is to lie within. Here it can be done by only printing a set amount of decimals for the test output which should truncate the floating point errors seen below.
$ python tests/test_pyoints.py
Run doctests for Pyoints
..................................../Users/kevers/dev/pyoints/pyoints/georecords.py:200: UserWarning: 'proj' not set, so I assume '+proj=latlong +datum=WGS84 +to +proj=latlong +datum=WGS84 +units=m +no_defs'
warnings.warn("'proj' not set, so I assume '%s'" % proj.proj4)
......F................F................................................F.............................Warning 1: Setting nodata to nan on band 2, but band 1 has nodata at nan. The TIFFTAG_GDAL_NODATA only support one value per dataset. This value of nan will be used for all bands on re-opening
Warning 1: Setting nodata to nan on band 3, but band 1 has nodata at nan. The TIFFTAG_GDAL_NODATA only support one value per dataset. This value of nan will be used for all bands on re-opening
..Warning 1: Setting nodata to nan on band 2, but band 1 has nodata at nan. The TIFFTAG_GDAL_NODATA only support one value per dataset. This value of nan will be used for all bands on re-opening
Warning 1: Setting nodata to nan on band 3, but band 1 has nodata at nan. The TIFFTAG_GDAL_NODATA only support one value per dataset. This value of nan will be used for all bands on re-opening
..
======================================================================
FAIL: from_corners (pyoints.grid.grid.Grid)
Doctest: pyoints.grid.grid.Grid.from_corners
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/local/miniconda3/envs/pyoints/lib/python3.7/doctest.py", line 2198, in runTest
raise self.failureException(self.format_failure(new.getvalue()))
AssertionError: Failed doctest test for pyoints.grid.grid.Grid.from_corners
File "/Users/kevers/dev/pyoints/pyoints/grid/grid.py", line 188, in from_corners
----------------------------------------------------------------------
File "/Users/kevers/dev/pyoints/pyoints/grid/grid.py", line 210, in pyoints.grid.grid.Grid.from_corners
Failed example:
print(raster.shape)
Expected:
(2, 4)
Got:
(2, 3)
======================================================================
FAIL: PolynomInterpolator (pyoints.interpolate)
Doctest: pyoints.interpolate.PolynomInterpolator
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/local/miniconda3/envs/pyoints/lib/python3.7/doctest.py", line 2198, in runTest
raise self.failureException(self.format_failure(new.getvalue()))
AssertionError: Failed doctest test for pyoints.interpolate.PolynomInterpolator
File "/Users/kevers/dev/pyoints/pyoints/interpolate.py", line 296, in PolynomInterpolator
----------------------------------------------------------------------
File "/Users/kevers/dev/pyoints/pyoints/interpolate.py", line 327, in pyoints.interpolate.PolynomInterpolator
Failed example:
print(interpolator([0, 1]))
Expected:
1.5
Got:
1.4999999999999998
======================================================================
FAIL: Plane (pyoints.vector)
Doctest: pyoints.vector.Plane
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/local/miniconda3/envs/pyoints/lib/python3.7/doctest.py", line 2198, in runTest
raise self.failureException(self.format_failure(new.getvalue()))
AssertionError: Failed doctest test for pyoints.vector.Plane
File "/Users/kevers/dev/pyoints/pyoints/vector.py", line 909, in Plane
----------------------------------------------------------------------
File "/Users/kevers/dev/pyoints/pyoints/vector.py", line 1033, in pyoints.vector.Plane
Failed example:
print(plane.t.to_global(local_coords))
Expected:
[[ 1. 2.]
[ 4. 6.]
[ 0. 1.]
[ 7. 10.]]
Got:
[[ 1.00000000e+00 2.00000000e+00]
[ 4.00000000e+00 6.00000000e+00]
[-2.77555756e-17 1.00000000e+00]
[ 7.00000000e+00 1.00000000e+01]]
----------------------------------------------------------------------
Ran 142 tests in 2.893s
FAILED (failures=3)
Pip installation fails because pygdal doesn't recognise the installed GDAL Version.
As an workaround pip install pygdal==$(gdal-config --version).*
is used.
In relation to openjournals/joss-reviews#990
The community guidelines currently consists of these few words under the section "Contact":
In case of questions, suggestions for improvement or software issues, please use
the issue board or contact Sebastian Lamprecht, [email protected].
Contribution to the software is always welcome.
While this touches the bare minimum I would appreciate a separate section called "Community" or "Contributing", describing in a bit more words how to contribute to the project either with code or bug reports. GitHub has a nice feature for this in contributing.md files.
First and foremost, great development work.
I was just wondering if failing 2 tests from test_pyoints.py still needed me to take further action to make the pyoints module work well. I am running Ubuntu 20.04 LTS and Python 3.8.3 (default, Jul 2 2020, 16:21:59)
...............Run doctests for Pyoints 0.2.0
...................../home/andrew/pyoints/pyoints/georecords.py:216: UserWarning: 'proj' not set, so I assume '+proj=latlong +datum=WGS84 +to +proj=latlong +datum=WGS84 +units=m +no_defs'
warnings.warn("'proj' not set, so I assume '%s'" % proj.proj4)
.........................................../home/andrew/anaconda3/lib/python3.8/site-packages/numpy/core/numeric.py:207: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
a = empty(shape, dtype, order)
...FF............................................................
======================================================================
FAIL: GeoTransform (pyoints.projection)
Doctest: pyoints.projection.GeoTransform
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/andrew/anaconda3/lib/python3.8/doctest.py", line 2204, in runTest
raise self.failureException(self.format_failure(new.getvalue()))
AssertionError: Failed doctest test for pyoints.projection.GeoTransform
File "/home/andrew/pyoints/pyoints/projection.py", line 161, in GeoTransform
----------------------------------------------------------------------
File "/home/andrew/pyoints/pyoints/projection.py", line 187, in pyoints.projection.GeoTransform
Failed example:
print_rounded(tCoords, 3)
Expected:
[[ 2560446.801 5537522.386]
[ 2560808.009 5537303.984]
[ 2564724.211 5539797.116]
[ 2566007.32 5552049.646]]
Got:
[[ 2560396.394 5537394.098]
[ 2560757.556 5537175.718]
[ 2564673.297 5539668.53 ]
[ 2565956.354 5551919.643]]
======================================================================
FAIL: Proj (pyoints.projection)
Doctest: pyoints.projection.Proj
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/andrew/anaconda3/lib/python3.8/doctest.py", line 2204, in runTest
raise self.failureException(self.format_failure(new.getvalue()))
AssertionError: Failed doctest test for pyoints.projection.Proj
File "/home/andrew/pyoints/pyoints/projection.py", line 38, in Proj
----------------------------------------------------------------------
File "/home/andrew/pyoints/pyoints/projection.py", line 63, in pyoints.projection.Proj
Failed example:
print('AUTHORITY["EPSG","4326"]' in proj.wkt)
Expected:
True
Got:
False
----------------------------------------------------------------------
File "/home/andrew/pyoints/pyoints/projection.py", line 73, in pyoints.projection.Proj
Failed example:
print('AUTHORITY["EPSG","4326"]' in proj.wkt)
Expected:
True
Got:
False
----------------------------------------------------------------------
Ran 144 tests in 3.743s
FAILED (failures=2)
Once again, great work on this module. I hope to use it on my research and will gladly cite you if so.
Regards,
Andrew
Just a couple minor items with respect to the paper:
for the Bradski citation, it there a url that could be included to point to the source
is the consortium, P citation correct? I imagine it is intended to be cited as the "Pantheon Consortium" or similar?
in the GitHub citation - I would recommend either
For the Rusu & Cousins citation: is there a doi for the paper that could be included?
related to openjournals/joss-reviews#990
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.