> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wherobots.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GeoSeries.is_valid_reason

> Returns a Series of strings with the reason for invalidity of each geometry.

Returns a `Series` of strings with the reason for invalidity of
each geometry.

## Examples

An example with one invalid polygon (a bowtie geometry crossing itself)
and one missing geometry:

```python theme={"system"}
>>> from sedona.spark.geopandas import GeoSeries
>>> from shapely.geometry import Polygon
>>> s = GeoSeries(
...     [
...         Polygon([(0, 0), (1, 1), (0, 1)]),
...         Polygon([(0,0), (1, 1), (1, 0), (0, 1)]),  # bowtie geometry
...         Polygon([(0, 0), (2, 2), (2, 0)]),
...         Polygon([(0, 0), (2, 0), (1, 1), (2, 2), (0, 2), (1, 1), (0, 0)]),
...         None
...     ]
... )
>>> s
0         POLYGON ((0 0, 1 1, 0 1, 0 0))
1    POLYGON ((0 0, 1 1, 1 0, 0 1, 0 0))
2         POLYGON ((0 0, 2 2, 2 0, 0 0))
3                                   None
dtype: geometry
```

```python theme={"system"}
>>> s.is_valid_reason()
0    Valid Geometry
1    Self-intersection at or near point (0.5, 0.5, NaN)
2    Valid Geometry
3    Ring Self-intersection at or near point (1.0, 1.0)
4    None
dtype: object
```

## See also

GeoSeries.is\_valid : detect invalid geometries
GeoSeries.make\_valid : fix invalid geometries

## Signature

```python theme={"system"}
is_valid_reason() -> pspd.Series
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.