geopandas bug ?
Xristos Xristoou
saxri89 at gmail.com
Sat Jan 14 11:11:17 EST 2017
Τη Σάββατο, 14 Ιανουαρίου 2017 - 6:01:39 μ.μ. UTC+2, ο χρήστης Peter Otten έγραψε:
> Xristos Xristoou wrote:
>
> > Τη Σάββατο, 14 Ιανουαρίου 2017 - 4:30:48 μ.μ. UTC+2, ο χρήστης Peter Otten
> > έγραψε:
> >> Xristos Xristoou wrote:
> >>
> >> > Τη Σάββατο, 14 Ιανουαρίου 2017 - 3:43:10 μ.μ. UTC+2, ο χρήστης Peter
> >> > Otten έγραψε:
> >> >> Xristos Xristoou wrote:
> >> >>
> >> >> > i want to create a simple spatial joing using geopandas but i thing
> >> >> > so geopandas has bug ?
> >> >>
> >> >> Have you tried the examples on
> >> >> <http://geopandas.org/mergingdata.html>? Do they work? If yes, inspect
> >> >> your data, does it have the same format?
> >>
> >> Looks like you chose to ignore the hard part.
> >>
> >> >> > geopandas code :
> >> >> >
> >> >> > from geopandas import gpd
> >> >> > import geopandas
> >> >> > points = geopandas.GeoDataFrame.from_file('points.shp') # or geojson
> >> >> > etc polys = geopandas.GeoDataFrame.from_file('polygons.shp')
> >> >> > pointInPoly = gpd.sjoin(points, polys, how='left',op='within')
> >> >> >
> >> >> > error :
> >> >> >
> >> >> > Traceback (most recent call last):
> >> >> > File
> >> >> > "/home/sarantis/testshapely/sumpointsinsidepolygon/testgeo.py",
> >> >> > line 7, in <module>
> >> >> > pointInPoly = gpd.sjoin(points, polys, how='left',op='within')
> >> >> > File
> >> >> > "/usr/local/lib/python2.7/dist-packages/geopandas/tools/sjoin.py",
> >> >> > line 57, in sjoin
> >> >> > r_idx = np.concatenate(idxmatch.values)
> >> >> > ValueError: need at least one array to concatenate
> >>
> >> >> > any idea why ?
> >> >>
> >> >> My crystal ball says that either points or polys is empty ;)
> >> >
> >> > is not empty and yes i have two shapefiles from qgis.
> >>
> >> Can I download those files somewhere?
> >>
> >> > what is the error ?
> >>
> >> No idea. Without those files I cannot run your code.
> >
> > https://www.dropbox.com/s/2693nfi248z0y9q/files.zip?dl=0 with the
> > shapefiles
>
> It looks like there are no intersections in your data.
> With the proviso that I've learned about the library only today I think you
> should get an empty result set rather than the ValueError.
> Here's a way to reproduce the error (?) with the data provided in the
> project:
>
> import geopandas
> from geopandas import gpd
>
> world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
> cities = gpd.read_file(gpd.datasets.get_path('naturalearth_cities'))
> countries = world[['geometry', 'name']]
>
> def find(items, name):
> # didn't find the idomatic way quickly, so
> for index, n in enumerate(items["name"]):
> if n == name:
> return items[index:index+1]
> raise ValueError
>
> berlin = find(cities, "Berlin")
> paris = find(cities, "Paris")
> germany = find(countries, "Germany")
>
> print(gpd.sjoin(berlin, germany))
> print(gpd.sjoin(paris, germany)) # ValueError
>
> $ python demo.py
> geometry name_left index_right \
> 175 POINT (13.39960276470055 52.52376452225116) Berlin 41
>
> name_right
> 175 Germany
>
> [1 rows x 4 columns]
> Traceback (most recent call last):
> File "demo.py", line 20, in <module>
> print(gpd.sjoin(paris, germany)) # ValueError
> File "/home/peter/virt/geopandas/lib/python3.4/site-
> packages/geopandas/tools/sjoin.py", line 57, in sjoin
> r_idx = np.concatenate(idxmatch.values)
> ValueError: need at least one array to concatenate
> $
>
> I suggest that you file a bug report.
Mr.Peter Otten do you see my shapefiles ?have instersection 100 to 100 i use instersection on QGIS ad work fine
More information about the Python-list
mailing list