Skip to content

Commit

Permalink
add test transform from epsg:32632 to map
Browse files Browse the repository at this point in the history
  • Loading branch information
mmeijerdfki committed Oct 1, 2024
1 parent 41b641d commit 1fcb4d7
Show file tree
Hide file tree
Showing 3 changed files with 115 additions and 41 deletions.
43 changes: 3 additions & 40 deletions examples/python/gRPC/images/gRPC_fb_queryImages.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,51 +13,14 @@
from seerep.util.fb_helper import (
create_label,
create_label_category,
createPoint2d,
createPolygon2D,
createQuery,
createRectangularPolygon2D,
createTimeInterval,
createTimeStamp,
getOrCreateProject,
)


def create_polygon_rect(
builder: flatbuffers.Builder,
x: float,
y: float,
extent_x: float,
extent_y: float,
z: float,
height: float,
) -> int:
"""
Creates a rectangular shaped polygon.
Args:
builder (Builder): The flatbuffers builder.
x (float): The left bottom origin x coordinate.
y (float): The left bottom origin y coordinate.
extent_x (float): The extend of the rectangle in x direction.
extent_y (float): The extend of the rectangle in y direction.
z (float): The z-coordinate to start the polygon off.
height (float): The extent to which to expand the valid 3D region of the
polygon starting from z.
Returns: The created polygon2D type
"""
polygon_vertices = []
(polygon_vertices.append(createPoint2d(builder, x, y)),)
(polygon_vertices.append(createPoint2d(builder, x + extent_x, y)),)
(
polygon_vertices.append(
createPoint2d(builder, x + extent_x, y + extent_y)
),
)
polygon_vertices.append(createPoint2d(builder, x, y + extent_y))
return createPolygon2D(builder, height, z, polygon_vertices)


def query_images_raw(
fbb: flatbuffers.Builder,
grpc_channel: Channel,
Expand Down Expand Up @@ -119,7 +82,7 @@ def query_example():
grpc_channel = get_gRPC_channel()
project_uuid = getOrCreateProject(fbb, grpc_channel, "testproject")

polygon_2d = create_polygon_rect(
polygon_2d = createRectangularPolygon2D(
fbb,
x=-100,
extent_x=200,
Expand Down Expand Up @@ -185,7 +148,7 @@ def query_geodetic_example():
grpc_channel = get_gRPC_channel()
project_uuid = getOrCreateProject(fbb, grpc_channel, "geodeticProject")

polygon_epsg3857 = create_polygon_rect(
polygon_epsg3857 = createRectangularPolygon2D(
fbb,
x=921689.630348,
y=6865153.476919,
Expand Down
36 changes: 36 additions & 0 deletions examples/python/gRPC/util/fb_helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -584,6 +584,42 @@ def createPolygon2D(
return Polygon2D.End(builder)


def createRectangularPolygon2D(
builder: Builder,
x: float,
y: float,
extent_x: float,
extent_y: float,
z: float,
height: float,
) -> int:
"""
Creates a rectangular shaped polygon.
Args:
builder (Builder): The flatbuffers builder.
x (float): The left bottom origin x coordinate.
y (float): The left bottom origin y coordinate.
extent_x (float): The extend of the rectangle in x direction.
extent_y (float): The extend of the rectangle in y direction.
z (float): The z-coordinate to start the polygon off.
height (float): The extent to which to expand the valid 3D region of the
polygon starting from z.
Returns: The created polygon2D type
"""
polygon_vertices = []
(polygon_vertices.append(createPoint2d(builder, x, y)),)
(polygon_vertices.append(createPoint2d(builder, x + extent_x, y)),)
(
polygon_vertices.append(
createPoint2d(builder, x + extent_x, y + extent_y)
),
)
polygon_vertices.append(createPoint2d(builder, x, y + extent_y))
return createPolygon2D(builder, height, z, polygon_vertices)


def addToBoundingBoxLabeledVector(
builder: Builder, boundingBoxLabeledList: List[int]
) -> int:
Expand Down
77 changes: 76 additions & 1 deletion tests/python/gRPC/images/test_gRPC_fb_sendAndQueryImages.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,21 @@
# test file for
# gRPC_fb_sendImages.py
# gRPC_fb_queryImages.py

from typing import Dict

import flatbuffers
import seerep.util.fb_helper as fbh
from gRPC.images import gRPC_fb_queryImages, gRPC_fb_sendImages
from seerep.util.fb_to_dict import SchemaFileNames, fb_flatc_dict


def get_header_timestamp_nanos(fb_dict: Dict) -> int:
return (
fb_dict["header"]["stamp"]["seconds"] * 10**9
+ fb_dict["header"]["stamp"]["nanos"]
)


def test_gRPC_fb_sendAndQueryImages(grpc_channel, project_setup, num_images=30):
_, proj_uuid = project_setup

Expand Down Expand Up @@ -40,3 +48,70 @@ def test_gRPC_fb_sendAndQueryImages(grpc_channel, project_setup, num_images=30):

for img in sent_images:
assert img in queried_images


def test_gRPC_fb_sendAndQueryImagesEPSG32632(
grpc_channel, epsg4326_project_setup, num_images=10
):
proj_uuid = epsg4326_project_setup
fbb = flatbuffers.Builder()

camera_intrinsics_uuid = gRPC_fb_sendImages.send_cameraintrinsics(
grpc_channel, proj_uuid
)

timestamp_nanos = 1245
timestamps = [
(t, timestamp_nanos)
for t in range(1661336507, 1661336507 + num_images * 10, 10)
]

sent_images = gRPC_fb_sendImages.send_images(
grpc_channel,
proj_uuid,
camera_intrinsics_uuid,
gRPC_fb_sendImages.generate_image_ressources(num_images),
timestamps,
)

gRPC_fb_sendImages.send_tfs(grpc_channel, proj_uuid, timestamps)

sent_images = [
fb_flatc_dict(img, SchemaFileNames.IMAGE) for img in sent_images
]

offset_x = 394
offset_y = 394
# define polygon in epsg:32632
polygon_epsg32632 = fbh.createRectangularPolygon2D(
fbb,
x=450945.55942398345 + offset_x,
y=5801123.517354042 + offset_y,
extent_x=517,
extent_y=517,
z=60,
height=36,
)

queried_images = gRPC_fb_queryImages.query_images_raw(
fbb,
grpc_channel,
proj_uuid,
polygon2d=polygon_epsg32632,
fullyEncapsulated=True,
crsString="EPSG:32632",
)

queried_images = [
fb_flatc_dict(img, SchemaFileNames.IMAGE) for img in queried_images
]

filtered_sent_imgs = sorted(
sent_images, key=lambda d: get_header_timestamp_nanos(d)
)
sorted_queried_imgs = sorted(
queried_images, key=lambda d: get_header_timestamp_nanos(d)
)

assert len(sorted_queried_imgs) > 0
assert filtered_sent_imgs[2:4] == sorted_queried_imgs

0 comments on commit 1fcb4d7

Please sign in to comment.