Re: Shapely Polygon creating empty polygon

2022-01-05 Thread Israel Brewster
Found it! Apparently, it’s an import order issue. This works:

>>> from shapely.geometry import Polygon
>>> from osgeo import osr
>>> bounds = [-164.29635821669632, 54.64251856269729, -163.7631779798799, 
>>> 54.845450778742546]
>>> print(Polygon.from_bounds(*bounds))
POLYGON ((-164.2963582166963 54.64251856269729, -164.2963582166963 
54.84545077874255, -163.7631779798799 54.84545077874255, -163.7631779798799 
54.64251856269729, -164.2963582166963 54.64251856269729))

But this doesn’t:

>>> from osgeo import osr
>>> from shapely.geometry import Polygon
>>> bounds = [-164.29635821669632, 54.64251856269729, -163.7631779798799, 
>>> 54.845450778742546]
>>> print(Polygon.from_bounds(*bounds))
POLYGON EMPTY

…So apparently I have to make sure to import shapely *before* I import anything 
from osgeo. Why? I have no idea...
---
Israel Brewster
Software Engineer
Alaska Volcano Observatory 
Geophysical Institute - UAF 
2156 Koyukuk Drive 
Fairbanks AK 99775-7320
Work: 907-474-5172
cell:  907-328-9145

> On Jan 4, 2022, at 1:57 PM, Israel Brewster  wrote:
> 
> I’m running into an issue with shapely that is baffling me. Perhaps someone 
> here can help out?
> 
> When running shapely directly from a python 3.8 interpreter, it works as 
> expected:
> 
> >>> import shapely
> >>> shapely.__version__
> '1.8.0'
> >>> from shapely.geometry import Polygon
> >>> bounds = [-164.29635821669632, 54.64251856269729, -163.7631779798799, 
> >>> 54.845450778742546]
> >>> print(Polygon.from_bounds(*bounds))
> POLYGON ((-164.2963582166963 54.64251856269729, -164.2963582166963 
> 54.84545077874255, -163.7631779798799 54.84545077874255, -163.7631779798799 
> 54.64251856269729, -164.2963582166963 54.64251856269729))
> 
> However, if I put this exact same code into my Flask app (currently running 
> under the Flask development environment) as part of handling a request, I get 
> an empty polygon:
> 
> >>>import shapely
> >>>print(shapely.__version__)
> >>>from shapely.geometry import Polygon
> >>>print(Polygon.from_bounds(*bounds))
> 
> Output:
> 
> 1.8.0
> POLYGON EMPTY
> 
> In fact, *any* attempt to create a polygon gives the same result:
> >>> test = Polygon(((1, 1), (2, 1), (2, 2)))
> >>> print(test)
> POLYGON EMPTY
> 
> What am I missing here? Why doesn’t it work as part of a Flask request call?
> ---
> Israel Brewster
> Software Engineer
> Alaska Volcano Observatory 
> Geophysical Institute - UAF 
> 2156 Koyukuk Drive 
> Fairbanks AK 99775-7320
> Work: 907-474-5172
> cell:  907-328-9145
> 

-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Shapely Polygon creating empty polygon

2022-01-04 Thread MRAB

On 2022-01-04 22:57, Israel Brewster wrote:

I’m running into an issue with shapely that is baffling me. Perhaps someone 
here can help out?

When running shapely directly from a python 3.8 interpreter, it works as 
expected:


import shapely
shapely.__version__

'1.8.0'

from shapely.geometry import Polygon
bounds = [-164.29635821669632, 54.64251856269729, -163.7631779798799, 
54.845450778742546]
print(Polygon.from_bounds(*bounds))

POLYGON ((-164.2963582166963 54.64251856269729, -164.2963582166963 
54.84545077874255, -163.7631779798799 54.84545077874255, -163.7631779798799 
54.64251856269729, -164.2963582166963 54.64251856269729))

However, if I put this exact same code into my Flask app (currently running 
under the Flask development environment) as part of handling a request, I get 
an empty polygon:


   import shapely
   print(shapely.__version__)
   from shapely.geometry import Polygon
   print(Polygon.from_bounds(*bounds))


In that piece of code you didn't set 'bounds'. It might be worth setting 
it or at least printing it out to double-check.


Output:

1.8.0
POLYGON EMPTY

In fact, *any* attempt to create a polygon gives the same result:

test = Polygon(((1, 1), (2, 1), (2, 2)))
print(test)

POLYGON EMPTY

Did you try that piece of code both in Flask and from the command line, 
again to double-check.



What am I missing here? Why doesn’t it work as part of a Flask request call?


--
https://mail.python.org/mailman/listinfo/python-list


Shapely Polygon creating empty polygon

2022-01-04 Thread Israel Brewster
I’m running into an issue with shapely that is baffling me. Perhaps someone 
here can help out?

When running shapely directly from a python 3.8 interpreter, it works as 
expected:

>>> import shapely
>>> shapely.__version__
'1.8.0'
>>> from shapely.geometry import Polygon
>>> bounds = [-164.29635821669632, 54.64251856269729, -163.7631779798799, 
>>> 54.845450778742546]
>>> print(Polygon.from_bounds(*bounds))
POLYGON ((-164.2963582166963 54.64251856269729, -164.2963582166963 
54.84545077874255, -163.7631779798799 54.84545077874255, -163.7631779798799 
54.64251856269729, -164.2963582166963 54.64251856269729))

However, if I put this exact same code into my Flask app (currently running 
under the Flask development environment) as part of handling a request, I get 
an empty polygon:

>>>import shapely
>>>print(shapely.__version__)
>>>from shapely.geometry import Polygon
>>>print(Polygon.from_bounds(*bounds))

Output:

1.8.0
POLYGON EMPTY

In fact, *any* attempt to create a polygon gives the same result:
>>> test = Polygon(((1, 1), (2, 1), (2, 2)))
>>> print(test)
POLYGON EMPTY

What am I missing here? Why doesn’t it work as part of a Flask request call?
---
Israel Brewster
Software Engineer
Alaska Volcano Observatory 
Geophysical Institute - UAF 
2156 Koyukuk Drive 
Fairbanks AK 99775-7320
Work: 907-474-5172
cell:  907-328-9145

-- 
https://mail.python.org/mailman/listinfo/python-list