-
Notifications
You must be signed in to change notification settings - Fork 394
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update the vendored version of geos #228
Comments
Shapely would be a good way to support GEOS functionality. It is one of the recommended ways to use GEOS library in Python. It has regular releases. Shapely has more functionality that is available, if needed. _geoslib (the internal basemap code that interfaces Python to lib GEOS) and Shapely function names are almost identical. Except _geoslib has a .fix() which looks like a workaround that Shapely does not have. I think using Shapely could simplify the code slightly. |
I think the reason I did not originally use Shapely was that it was too slow when operating on numpy arrays. This may have changed in more recent releases though, so it is worth revisiting. |
Good to know that switching to shapely shouldn't be too painful. Before we On Wed, Dec 9, 2015 at 3:07 PM, Micah Cochran [email protected]
|
I haven't seen huge speed issues with shapely and numpy (although, I don't Note, that wasn't a criticism of you or pyproj, just pointing out that we On Wed, Dec 9, 2015 at 3:10 PM, Benjamin Root [email protected] wrote:
|
_geoslib.pyx contains some loops, which may be slow when converted to python loops calling Shapely. |
I wrote a small shim to try to import shapely as "_geoslib". I did not get too far. Suffice to say, there is some work to figure out if shapely would be a replacement. @WeatherGod are you wanting to upgrade the internal version of libgeos to 3.3.9 (released Sept 4, 2013) or 3.5.0 (released August 16, 2015)? 3.4 seems to be failing build tests. |
How about a different idea. What about using python-wget as a means to download libgeos? Then, you'd need a small amount of code that would extract the archive (zipfile/tarfile)--setup.py possibly could call that. This could completely remove the libgeos code from the project's github. |
no to wget, as that breaks debian rules, and really isnt a safe idea. I On Thu, Dec 31, 2015 at 1:10 PM, Micah Cochran [email protected]
|
I think that the directory for GEOS should be simply named geos/ (or possibly libgeos/), not geos-3.5.0/. Why? Some of the files will rarely change between versions. I assume that the difference between versions would be smaller. Git currently has to download about 1 GB for development. Either a file can be added under the geos/ folder to say that this is VERSION-3.5.0 of libgeos or the supplied libgeos version number could be added to the main project's README.md. Are there downsides that I'm not thinking about? |
The latest release 1.3.0 from beginning of this week addressed this problem. In summary:
|
While users can build basemap against other versions of libgeos/libgeos_c, the default action is to use the vendored version, which is at version 3.3.3 and is 3 years old. Conda packages are being built against this version because it is what is vendored. We should determine what version to bump ourselves up to, or figure out a way to make the basemap package more flexible to which version of libgeos is available.
Unfortunately, I don't have much expertise in this matter.
The text was updated successfully, but these errors were encountered: