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_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 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