Краткая информация
Выполняет измерения на изображении с помощью модели сенсора, которая включает геометрическую модель сенсора и соответствующие метаданные (Image Support Data), поставляемые с изображением. Поддерживаемые типы измерений включают точку, расстояние или длину, площадь и высоту объекта.
Обсуждение
Измерение изображения основывается на преобразовании модели сенсора изображения на землю. Для измерения одного изображения преобразованию требуется высота точки. Высоту можно оценить по средней высоте, но модель поверхности даст более точные результаты. Для вычисления измерения требуются координаты x, y изображения и координата z на земле. Когда модель поверхности включена, расчет является итеративным, пересекая луч от изображения до модели поверхности, чтобы определить точку пересечения с землей. В редких случаях, особенно в случаях пересеченной местности и большого наклона, итерация может не привести к правильному решению из-за неоднозначности. В этих случаях система не может вычислить отдельную точку, что приводит к отсутствию действительного решения.
Примечание:
Методы измерения (точка, длина, площадь и высота объекта) могут не возвращать значение, если решение не определено. С этой функцией важно использовать только координаты изображения, поскольку координаты карты сначала будут преобразованы в пространство изображения, что приведет к возможной ошибке.
Вычислите центральную точку изображения.
import arcpy
raster = arcpy.sa.Raster(raster_path)
mens = arcpy.ia.Mensuration(raster)
result = mens.point((raster.width/2, raster.height/2))
print(f"Center: ({result.lat}, {result.lon})")
Для методов, в которых используются две точки, будут возвращены расстояние и направление. Расстояние - это линейное измерение по плоскости земли. Направление - это северный азимут от линии, определяемой от первой измеренной точки до второй измеренной точки. Важно измерять точки на изображении, расположенные вдоль плоской поверхности.
Для высоты, измеряемой от основания объекта до верха объекта, предполагается, что точки выровнены по вертикали, что означает, что нижняя точка находится непосредственно под верхней точкой. Для измерений с использованием теней информация об угле солнца должна быть включена в метаданные модели сенсора. Предполагается, что объект отбрасывает тень на ровную местность, которая пересекает основание объекта в точке, которая считается базой. Если местность имеет уклон, возвращаемое значение высоты может увеличиваться или уменьшаться.
Вычислите расстояние по верхнему краю изображения.
import arcpy
raster = arcpy.sa.Raster(raster_path)
mens = arcpy.ia.Mensuration(raster)
result = mens.distance((0, 0), (raster.width, 0))
print(f"Image Width: {result.distance} m")
При расчете площади используется модель сенсора изображения и определенная поверхность для расчета покрытия земли и периметра изображения. Это вычисляется на эллипсоиде и не соответствует рельефу. Этот метод может не возвращать значение, если он не может свести решение. С этой функцией важно использовать только координаты изображения, поскольку координаты карты сначала будут преобразованы в пространство изображения, что приведет к возможной ошибке.
Вычислите площадь земной поверхности на изображении.
import arcpy
raster = arcpy.sa.Raster(raster_path)
mens = arcpy.ia.Mensuration(raster)
result = mens.area([(0, 0), (raster.width, 0),
(raster.width, raster.height), (0, raster.height)])
print(f"Image Size: {result.area} m^2")
Расчет высоты выполняется на эллипсоиде и не учитывает рельеф местности. Этот метод может не возвращать значение, если он не может свести решение. В этом методе важно использовать только координаты изображения (столбец, строка), поскольку координаты карты будут преобразованы в пространство изображения, что приведет к возможной ошибке.
Вычислите высоту объекта:
import arcpy
raster = arcpy.sa.Raster(raster_path)
mens = arcpy.ia.Mensuration(raster)
result = mens.height((base_x, base_y),
(top_x, top_y),
Mensuration.base_to_top)
print (f"Height: {result.height} m")
Синтаксис
Mensuration (raster)
Свойства
Свойство | Описание | Тип данных |
base_to_shadow (чтение и запись) | Рассчитывает высоту объекта путем измерения от основания объекта до верхней точки его тени на поверхности земли. | Long |
base_to_top (чтение и запись) | Рассчитывает высоту наземного объекта путем измерения от основания объекта до его верхней точки. | Long |
top_to_shadow (чтение и запись) | Рассчитывает высоту объекта путем измерения от вершины объекта до верхней точки его тени на поверхности земли. | Long |
Обзор метода
Метод | Описание |
area (polygon) | Вычисляет площадь полигона на изображении на основе модели сенсора. |
distance (from_point, to_point) | Вычисляет географическое расстояние между двумя точками на изображении на основе модели сенсора. |
height (base_point, top_point, height_type) | Вычислите вертикальную высоту объекта. |
point (point) | Вычисляет географические координаты на основе модели сенсора. |
Методы
area (polygon)
Параметр | Описание | Тип данных |
polygon | The input polygon. The polygon can be specified as a Polygon object, a list of Point objects, or a list of coordinate pairs in tuples. If specified as a list of tuples, the x- and y-coordinate values must be in the image coordinate system (column, row). If other spatial reference systems are preferred, use Polygon or Point objects with a spatial reference system defined. | Polygon |
Тип данных | Описание |
AreaMeasurement | Вычисленные значения площади. Возвращаются следующие атрибуты:
|
Вычислите площадь земной поверхности на изображении.
import arcpy
in_raster = arcpy.sa.Raster('Charlotte_multiband.tif')
mensuration = arcpy.ia.Mensuration(in_raster)
result = mensuration.area([(0, 0), (in_raster.width, 0), (in_raster.width, in_raster.height), (0, in_raster.height)])
print(f"Image Size: {result.area} m^2")
distance (from_point, to_point)
Параметр | Описание | Тип данных |
from_point | The input coordinates of the origin point. The point can be specified as a Point object, a PointGeometry object, or a coordinate pair in a tuple. If specified as a tuple, the x- and y-coordinate values must be in an image coordinate system (column, row). If other spatial reference systems are preferred, use the Point or PointGeometry objects with a spatial reference system defined. | Point |
to_point | The input coordinates of the destination point. The point can be specified as a Point object, a PointGeometry object, or a coordinate pair in a tuple. If specified as a tuple, the x-and y-coordinate values must be in the image coordinate system (column, row). If other spatial reference systems are preferred, use Point or PointGeometry objects with a spatial reference system defined. | Point |
Тип данных | Описание |
LinearMeasurement | Вычисленные значения расстояния. Возвращаются следующие атрибуты:
|
Вычислите расстояние по верхнему краю изображения.
import arcpy
in_raster = arcpy.Raster('Charlotte_multiband.tif')
mensuration = arcpy.ia.Mensuration(in_raster)
result = mensuration.distance((0, 0),( raster.width, 0))
print(f"Image Width: {result.distance} m")
height (base_point, top_point, height_type)
Параметр | Описание | Тип данных |
base_point | The input coordinates of the base of the feature to measure. This can be specified as a Point object, a PointGeometry object, or a coordinate pair in a tuple. If specified as a tuple, the x- and y-coordinate values should be in the image coordinate system (column, row). If other spatial reference systems are preferred, use PointGeometry or Point objects with a spatial reference system defined. | Point |
top_point | The input coordinates of the top of the feature to measure. The point can be specified as a Point object, a PointGeometry object, or a coordinate pair in a tuple. If specified as a tuple, the x- and y-coordinate values should be in the image coordinate system (column, row). If other spatial reference systems are preferred, use PointGeometry or Point objects with a spatial reference system defined. | Point |
height_type | Height measurements of an object can be obtained when a sensor model exists for an image. Sun angle information is required to make measurements using shadows. The height of an object is calculated between two points, based on a sensor model. Three types of height measurements are supported:
| Integer |
Тип данных | Описание |
HeightMeasurement | Вычисленные значения высоты. Возвращаются следующие атрибуты:
|
Вычислите высоту объекта.
import arcpy
in_raster = arcpy.sa.Raster('Charlotte_multiband.tif')
mensuration = arcpy.ia.Mensuration(in_raster)
result = mensuration.height((base_x, base_y), (top_x, top_y), Mensuration.base_to_top)
print(f"Height: {result.height} m")
point (point)
Параметр | Описание | Тип данных |
point | The input coordinates to measure. The point can be specified as a Point object, a PointGeometry object, or a coordinate pair in a tuple. If specified as a tuple, the x- and y-coordinate values must be in the image coordinate system (column, row). If other spatial reference systems are preferred, use Point or PointGeometry objects with a spatial reference system defined. | Point |
Тип данных | Описание |
PointMeasurement | Вычисленное наземное местоположение. Возвращаются следующие атрибуты:
|
Возвращает значения широты и долготы центральной точки изображения.
import arcpy
in_raster = arcpy.Raster('Charlotte_multiband.tif')
mensuration = arcpy.ia.Mensuration(in_raster)
result = mensuration.point((in_raster.width/2, in_raster.height/2))
print(f"Center: ({result.lat}, {result.lon})")