class documentation

Sorts the samples in a collection by their proximity to a specified geolocation.

Note

This stage must be the first stage in any fiftyone.core.view.DatasetView in which it appears.

Examples:

import fiftyone as fo
import fiftyone.zoo as foz

TIMES_SQUARE = [-73.9855, 40.7580]

dataset = foz.load_zoo_dataset("quickstart-geo")

#
# Sort the samples by their proximity to Times Square
#

stage = fo.GeoNear(TIMES_SQUARE)
view = dataset.add_stage(stage)

#
# Sort the samples by their proximity to Times Square, and only
# include samples within 5km
#

stage = fo.GeoNear(TIMES_SQUARE, max_distance=5000)
view = dataset.add_stage(stage)

#
# Sort the samples by their proximity to Times Square, and only
# include samples that are in Manhattan
#

import fiftyone.utils.geojson as foug

in_manhattan = foug.geo_within(
    "location.point",
    [
        [
            [-73.949701, 40.834487],
            [-73.896611, 40.815076],
            [-73.998083, 40.696534],
            [-74.031751, 40.715273],
            [-73.949701, 40.834487],
        ]
    ]
)

stage = fo.GeoNear(
    TIMES_SQUARE, location_field="location", query=in_manhattan
)
view = dataset.add_stage(stage)
Parameters
point

the reference point to compute distances to. Can be any of the following:

location_field

the location data of each sample to use. Can be any of the following:

  • The name of a fiftyone.core.fields.GeoLocation field whose point attribute to use as location data
  • An embedded.field.name containing GeoJSON data to use as location data
  • None, in which case there must be a single fiftyone.core.fields.GeoLocation field on the samples, which is used by default
min_distancefilter samples that are less than this distance (in meters) from point
max_distancefilter samples that are greater than this distance (in meters) from point
queryan optional dict defining a MongoDB read query that samples must match in order to be included in this view
create_indexwhether to create the required spherical index, if necessary
Method __init__ Undocumented
Method to_mongo Returns the MongoDB aggregation pipeline for the stage.
Property max_distance The maximum distance for matches, in meters.
Property min_distance The minimum distance for matches, in meters.
Property point The point to search proximity to.
Property query A query dict specifying a match condition.
Class Method _params Returns a list of JSON dicts describing the stage's supported parameters.
Method _kwargs Returns a list of [name, value] lists describing the parameters of this stage instance.
Instance Variable _max_distance Undocumented
Instance Variable _min_distance Undocumented
Instance Variable _point Undocumented
Instance Variable _query Undocumented

Inherited from _GeoStage:

Method validate Validates that the stage can be applied to the given collection.
Instance Variable _create_index Undocumented
Instance Variable _location_field Undocumented
Instance Variable _location_key Undocumented

Inherited from ViewStage (via _GeoStage):

Method __eq__ Undocumented
Method __repr__ Undocumented
Method __str__ Undocumented
Method get_edited_fields Returns a list of names of fields or embedded fields that may have been edited by the stage, if any.
Method get_excluded_fields Returns a list of fields that have been excluded by the stage, if any.
Method get_filtered_fields Returns a list of names of fields or embedded fields that contain arrays have been filtered by the stage, if any.
Method get_group_expr Returns the dynamic group expression for the given stage, if any.
Method get_group_media_types Returns the group media types outputted by this stage, if any, when applied to the given collection, if and only if they are different from the input collection.
Method get_media_type Returns the media type outputted by this stage when applied to the given collection, if and only if it is different from the input type.
Method get_selected_fields Returns a list of fields that have been selected by the stage, if any.
Method load_view Loads the fiftyone.core.view.DatasetView containing the output of the stage.
Property flattens_groups Whether this stage flattens groups into a non-grouped collection.
Property has_view Whether this stage's output view should be loaded via load_view rather than appending stages to an aggregation pipeline via to_mongo.
Property outputs_dynamic_groups Whether this stage outputs or flattens dynamic groups.
Class Method _from_dict Creates a ViewStage instance from a serialized JSON dict representation of it.
Method _needs_frames Whether the stage requires frame labels of video samples to be attached.
Method _needs_group_slices Whether the stage requires group slice(s) to be attached.
Method _serialize Returns a JSON dict representation of the ViewStage.
Instance Variable _uuid Undocumented
def __init__(self, point, location_field=None, min_distance=None, max_distance=None, query=None, create_index=True): (source)
def to_mongo(self, _, **__): (source)

Returns the MongoDB aggregation pipeline for the stage.

Only usable if has_view is False.

Parameters
_Undocumented
sample_collectionthe fiftyone.core.collections.SampleCollection to which the stage is being applied
**__Undocumented
Returns
a MongoDB aggregation pipeline (list of dicts)
@property
max_distance = (source)

The maximum distance for matches, in meters.

@property
min_distance = (source)

The minimum distance for matches, in meters.

The point to search proximity to.

A query dict specifying a match condition.

@classmethod
def _params(cls): (source)

Returns a list of JSON dicts describing the stage's supported parameters.

Returns
a list of JSON dicts
def _kwargs(self): (source)

Returns a list of [name, value] lists describing the parameters of this stage instance.

Returns
a list of [name, value] lists
_max_distance = (source)

Undocumented

_min_distance = (source)

Undocumented

Undocumented

Undocumented