Fishnet 2.0.1
Framework for Graph-Based Analysis of GIS Vector Data
Loading...
Searching...
No Matches
fishnet::VectorIO Namespace Reference

Functions

template<geometry::AnyGeometry G>
VectorLayer< G > empty (const OGRSpatialReference &spatialReference)
 Creates an empty VectorLayer with the given spatial reference.
 
template<geometry::AnyGeometry G = geometry::OGRGeometryAdapter, geometry::AnyGeometry O>
VectorLayer< G > emptyCopy (const VectorLayer< O > &source)
 Creates an empty VectorLayer with the same spatial reference and fields as the source layer.
 
template<geometry::AnyGeometry G, geometry::AnyGeometry O>
VectorLayer< G > transform (const VectorLayer< O > &source, auto &&convert)
 Copy a layer into one of another geometry type, carrying its spatial reference, fields and attributes.
 
template<geometry::OGRLayerGeometry G>
VectorLayer< G > narrow (const VectorLayer< geometry::OGRGeometryAdapter > &source)
 Bring a layer read without a geometry type into a layer of one.
 
template<geometry::AnyGeometry O>
requires requires(const O & geometry){ geometry.toNative(); }
auto nativeCopy (const VectorLayer< O > &source)
 Copy a layer of OGR backed geometries into one of the equivalent fishnet value types.
 
template<VectorLayerReader Reader>
auto tryRead (const Reader &reader, const typename Reader::file_type &file) -> std::remove_cvref_t< decltype(reader(file))>
 
template<VectorLayerReader Reader>
auto read (const Reader &reader, const typename Reader::file_type &file) -> std::remove_cvref_t< decltype(tryRead(reader, file).value())>
 
template<geometry::OGRLayerGeometry G = geometry::OGRGeometryAdapter>
VectorLayer< G > read (const Shapefile &shapefile)
 
template<geometry::OGRLayerGeometry G = geometry::OGRGeometryAdapter>
VectorLayer< G > read (const GeoPackage &geopackage)
 
template<geometry::OGRLayerGeometry G = geometry::OGRGeometryAdapter>
Either< VectorLayer< G >, std::string > tryRead (const AbstractVectorFile &file)
 Generic tryRead overload that consumes any AbstractVectorFile and dispatches to the appropriate reader based on file extension. Returns an Either with the VectorLayer on success or an error message on failure.
 
template<geometry::OGRLayerGeometry G = geometry::OGRGeometryAdapter>
VectorLayer< G > read (const AbstractVectorFile &file)
 Generic read overload that consumes any AbstractVectorFile and dispatches to the appropriate reader based on file extension.
 
VectorLayer< geometry::OGRPolygonAdapter > readPolygonLayer (const AbstractVectorFile &vectorFile)
 
template<geometry::OGRWritableGeometry G, VectorGISFile F>
Either< F, std::string > tryOverwrite (const VectorLayerWriter< G, F > auto &writer, const VectorLayer< G > &layer, const F &destination)
 
template<geometry::OGRWritableGeometry G, VectorGISFile F>
Either< F, std::string > tryWrite (const VectorLayerWriter< G, F > auto &writer, const VectorLayer< G > &layer, const F &destination)
 
template<geometry::OGRWritableGeometry G, VectorGISFile F>
F write (const VectorLayerWriter< G, F > auto &writer, const VectorLayer< G > &layer, const F &destination)
 
template<geometry::OGRWritableGeometry G, VectorGISFile F>
F overwrite (const VectorLayerWriter< G, F > auto &writer, const VectorLayer< G > &layer, const F &destination)
 
template<geometry::OGRWritableGeometry G>
Shapefile write (const VectorLayer< G > &layer, const Shapefile &destination)
 
template<geometry::OGRWritableGeometry G>
Shapefile overwrite (const VectorLayer< G > &layer, const Shapefile &destination)
 
template<geometry::OGRWritableGeometry G>
GeoPackage write (const VectorLayer< G > &layer, const GeoPackage &destination)
 
template<geometry::OGRWritableGeometry G>
GeoPackage overwrite (const VectorLayer< G > &layer, const GeoPackage &destination)
 
template<geometry::OGRWritableGeometry G>
std::unique_ptr< AbstractVectorFile > write (const VectorLayer< G > &layer, const AbstractVectorFile &destination)
 Generic write overload that consumes any AbstractVectorFile and dispatches to the appropriate writer based on file extension.
 
template<geometry::OGRWritableGeometry G>
std::unique_ptr< AbstractVectorFile > overwrite (const VectorLayer< G > &layer, const AbstractVectorFile &destination)
 Generic overwrite overload that consumes any AbstractVectorFile and dispatches to the appropriate writer based on file extension.
 

Function Documentation

◆ empty()

template<geometry::AnyGeometry G>
VectorLayer< G > fishnet::VectorIO::empty ( const OGRSpatialReference &  spatialReference)

Creates an empty VectorLayer with the given spatial reference.

Template Parameters
Ggeometry type of the layer
Parameters
spatialReferencespatial reference for the layer
Returns
VectorLayer<G> empty vector layer with the given spatial reference

◆ emptyCopy()

template<geometry::AnyGeometry G = geometry::OGRGeometryAdapter, geometry::AnyGeometry O>
VectorLayer< G > fishnet::VectorIO::emptyCopy ( const VectorLayer< O > &  source)

Creates an empty VectorLayer with the same spatial reference and fields as the source layer.

Template Parameters
Ggeometry type of the layer
Parameters
sourcesource layer to copy the spatial reference and fields from
Returns
VectorLayer<G> empty vector layer with the same spatial reference and fields as the source layer

◆ narrow()

template<geometry::OGRLayerGeometry G>
VectorLayer< G > fishnet::VectorIO::narrow ( const VectorLayer< geometry::OGRGeometryAdapter > &  source)

Bring a layer read without a geometry type into a layer of one.

Geometries of another type are dropped, except where narrowing coerces them,

See also
fishnet::geometry::OGRGeometryAdapter::narrowTo

◆ nativeCopy()

template<geometry::AnyGeometry O>
requires requires(const O & geometry){ geometry.toNative(); }
auto fishnet::VectorIO::nativeCopy ( const VectorLayer< O > &  source)

Copy a layer of OGR backed geometries into one of the equivalent fishnet value types.

Worth it for computations which walk the segments of a geometry repeatedly, as a native geometry precomputes them where an adapter reads them off the OGR geometry on every pass.

◆ overwrite() [1/4]

template<geometry::OGRWritableGeometry G>
std::unique_ptr< AbstractVectorFile > fishnet::VectorIO::overwrite ( const VectorLayer< G > &  layer,
const AbstractVectorFile &  destination 
)

Generic overwrite overload that consumes any AbstractVectorFile and dispatches to the appropriate writer based on file extension.

Template Parameters
Ggeometry type of the layer
Parameters
layerVectorLayer to write
destinationAbstractVectorFile to write to
Returns
AbstractVectorFile reference to the written file
Exceptions
std::runtime_errorif the file type is not supported

◆ overwrite() [2/4]

template<geometry::OGRWritableGeometry G>
GeoPackage fishnet::VectorIO::overwrite ( const VectorLayer< G > &  layer,
const GeoPackage &  destination 
)

◆ overwrite() [3/4]

template<geometry::OGRWritableGeometry G>
Shapefile fishnet::VectorIO::overwrite ( const VectorLayer< G > &  layer,
const Shapefile &  destination 
)

◆ overwrite() [4/4]

template<geometry::OGRWritableGeometry G, VectorGISFile F>
F fishnet::VectorIO::overwrite ( const VectorLayerWriter< G, F > auto &  writer,
const VectorLayer< G > &  layer,
const F &  destination 
)

◆ read() [1/4]

template<geometry::OGRLayerGeometry G = geometry::OGRGeometryAdapter>
VectorLayer< G > fishnet::VectorIO::read ( const AbstractVectorFile &  file)

Generic read overload that consumes any AbstractVectorFile and dispatches to the appropriate reader based on file extension.

Template Parameters
Ggeometry type of the layer
Parameters
fileAbstractVectorFile to read from
Returns
VectorLayer<G> read vector layer
Exceptions
std::runtime_errorif the file type is not supported or reading fails

◆ read() [2/4]

template<geometry::OGRLayerGeometry G = geometry::OGRGeometryAdapter>
VectorLayer< G > fishnet::VectorIO::read ( const GeoPackage &  geopackage)

◆ read() [3/4]

template<VectorLayerReader Reader>
auto fishnet::VectorIO::read ( const Reader &  reader,
const typename Reader::file_type &  file 
) -> std::remove_cvref_t<decltype(tryRead(reader,file).value())>

◆ read() [4/4]

template<geometry::OGRLayerGeometry G = geometry::OGRGeometryAdapter>
VectorLayer< G > fishnet::VectorIO::read ( const Shapefile &  shapefile)

◆ readPolygonLayer()

VectorLayer< geometry::OGRPolygonAdapter > fishnet::VectorIO::readPolygonLayer ( const AbstractVectorFile &  vectorFile)
inline

◆ transform()

template<geometry::AnyGeometry G, geometry::AnyGeometry O>
VectorLayer< G > fishnet::VectorIO::transform ( const VectorLayer< O > &  source,
auto &&  convert 
)

Copy a layer into one of another geometry type, carrying its spatial reference, fields and attributes.

This is the step between reading and computing: a layer is read without knowing what it holds and is then brought into the geometry type the computation actually needs.

Parameters
convertmaps a geometry of the source to an Option<G>; features whose geometry it rejects are dropped, which is what makes a mixed layer usable as a layer of one type

◆ tryOverwrite()

template<geometry::OGRWritableGeometry G, VectorGISFile F>
Either< F, std::string > fishnet::VectorIO::tryOverwrite ( const VectorLayerWriter< G, F > auto &  writer,
const VectorLayer< G > &  layer,
const F &  destination 
)

◆ tryRead() [1/2]

template<geometry::OGRLayerGeometry G = geometry::OGRGeometryAdapter>
Either< VectorLayer< G >, std::string > fishnet::VectorIO::tryRead ( const AbstractVectorFile &  file)

Generic tryRead overload that consumes any AbstractVectorFile and dispatches to the appropriate reader based on file extension. Returns an Either with the VectorLayer on success or an error message on failure.

Template Parameters
Ggeometry type of the layer
Parameters
fileAbstractVectorFile to read from
Returns
Either<VectorLayer<G>, std::string> VectorLayer on success, error message otherwise

◆ tryRead() [2/2]

template<VectorLayerReader Reader>
auto fishnet::VectorIO::tryRead ( const Reader &  reader,
const typename Reader::file_type &  file 
) -> std::remove_cvref_t<decltype(reader(file))>

◆ tryWrite()

template<geometry::OGRWritableGeometry G, VectorGISFile F>
Either< F, std::string > fishnet::VectorIO::tryWrite ( const VectorLayerWriter< G, F > auto &  writer,
const VectorLayer< G > &  layer,
const F &  destination 
)

◆ write() [1/4]

template<geometry::OGRWritableGeometry G>
std::unique_ptr< AbstractVectorFile > fishnet::VectorIO::write ( const VectorLayer< G > &  layer,
const AbstractVectorFile &  destination 
)

Generic write overload that consumes any AbstractVectorFile and dispatches to the appropriate writer based on file extension.

Template Parameters
Ggeometry type of the layer
Parameters
layerVectorLayer to write
destinationAbstractVectorFile to write to
Returns
AbstractVectorFile reference to the written file
Exceptions
std::runtime_errorif the file type is not supported

◆ write() [2/4]

template<geometry::OGRWritableGeometry G>
GeoPackage fishnet::VectorIO::write ( const VectorLayer< G > &  layer,
const GeoPackage &  destination 
)

◆ write() [3/4]

template<geometry::OGRWritableGeometry G>
Shapefile fishnet::VectorIO::write ( const VectorLayer< G > &  layer,
const Shapefile &  destination 
)

◆ write() [4/4]

template<geometry::OGRWritableGeometry G, VectorGISFile F>
F fishnet::VectorIO::write ( const VectorLayerWriter< G, F > auto &  writer,
const VectorLayer< G > &  layer,
const F &  destination 
)