In [1]:
Copied!
from shapely import Point
point = Point(0, 0)
point.bounds
from shapely import Point
point = Point(0, 0)
point.bounds
Out[1]:
(0.0, 0.0, 0.0, 0.0)
In [2]:
Copied!
from shapely import Polygon
polygon = Polygon([(1, 1), (2, 1), (2, 2), (1, 2)])
polygon.area, polygon.length
from shapely import Polygon
polygon = Polygon([(1, 1), (2, 1), (2, 2), (1, 2)])
polygon.area, polygon.length
Out[2]:
(1.0, 4.0)
In [3]:
Copied!
import geopandas as gpd
gs = gpd.GeoSeries([point, polygon])
gs
import geopandas as gpd
gs = gpd.GeoSeries([point, polygon])
gs
Out[3]:
0 POINT (0 0) 1 POLYGON ((1 1, 2 1, 2 2, 1 2, 1 1)) dtype: geometry
Lze se dotazovat na vlastnosti geometrických objektů, např. výměru:
In [4]:
Copied!
gs.area
gs.area
Out[4]:
0 0.0 1 1.0 dtype: float64
Anebo vytvořit na základě nich nové geometrické objekty:
In [5]:
Copied!
gs.centroid
gs.centroid
Out[5]:
0 POINT (0 0) 1 POINT (1.5 1.5) dtype: geometry
In [6]:
Copied!
gs.buffer(1)
gs.buffer(1)
Out[6]:
0 POLYGON ((1 0, 0.99518 -0.09802, 0.98079 -0.19... 1 POLYGON ((0 1, 0 2, 0.00482 2.09802, 0.01921 2... dtype: geometry
Geometrické objekty lze vykreslovat přímo v prostředí Jupyter Notebooku:
GeoDataFrame¶
Datový objekt GeoDataFrame lze vytvořit podobně jako DataFrame s tím, že navíc definujeme sloupec s geometrickými objekty.
In [8]:
Copied!
import pandas as pd
df = pd.DataFrame({
"popis": ["bod", "polygon"],
"geom": [point, polygon]
})
df
import pandas as pd
df = pd.DataFrame({
"popis": ["bod", "polygon"],
"geom": [point, polygon]
})
df
Out[8]:
| popis | geom | |
|---|---|---|
| 0 | bod | POINT (0 0) |
| 1 | polygon | POLYGON ((1 1, 2 1, 2 2, 1 2, 1 1)) |
In [9]:
Copied!
df.dtypes
df.dtypes
Out[9]:
popis object geom object dtype: object
In [10]:
Copied!
gdf = gpd.GeoDataFrame(df, geometry="geom")
gdf
gdf = gpd.GeoDataFrame(df, geometry="geom")
gdf
Out[10]:
| popis | geom | |
|---|---|---|
| 0 | bod | POINT (0 0) |
| 1 | polygon | POLYGON ((1 1, 2 1, 2 2, 1 2, 1 1)) |
In [11]:
Copied!
gdf.dtypes
gdf.dtypes
Out[11]:
popis object geom geometry dtype: object
Jelikož je sloupec s geometrickými objekty typu GeoSeries, lze k vlastnostem geometrických objektů a prostorovým funkcím přistupovat přímo přes datový objekt typu GeoDataFrame.
In [12]:
Copied!
gdf.area
gdf.area
Out[12]:
0 0.0 1 1.0 dtype: float64
Objekty lze vykreslit pomocí metody plot().