Select to view content in your preferred language

OIC Camera Location issue

1117
4
10-21-2022 08:55 AM
Labels (1)
CharlesDeng1
Emerging Contributor

Hello experts,

We have some 360° panoramic photos along streets.  We used Experience Builder to create a viewer with Oriented Imagery widget.   We came across a weird issue.  The green dots indicate the camera locations.  In the forward (vehicle moving) direction, they are in the air, not on the ground.  However, in the backward direction, they seem to be on the ground, which was what we expected (see attached).  Even though I changed the value of AvgHtAG from default 2.5 (m) to 0 (m), there is nothing happened to the green dots. 

When I added images to OIC, I chose “Terrestrial 360 Camera” as Imagery Type.  Do you have any idea what parameter I can adjust so that the green dots will fall to the ground?

Thanks,

Charles Deng

Tags (2)
0 Kudos
4 Replies
Peter_Becker
Emerging Contributor

The issue is related to the camera not being level. It appears to be pointing up a bit. Its not clear how you created the OIC and if the input included the camera orientation. I'm guessing that you only have X,Y and heading (or computing heading). The oriented Imagery model defines CamHeading, CamPitch and CamRoll for each image that define the orientation. For 360 the default CamPitch is 90 (looking horiontal). In this case you need to change the Cam_Pitch value to say 93. This can be done by running calculate on the OIC tables to set the CamPitch value. Alternatively if all the values are the same you can deleted CamPitch field and set the default value in the OIC Properties. Modify the value till the points are on the ground

0 Kudos
CharlesDeng1
Emerging Contributor

Thank you Peter for your reply.  What you said makes sense.  However, I changed CamPictch from default 90 to 93, 95, 100, or 105, and the green points are still in the air, not affected at all.   When I changed it to 110, the Overlays button disappeared.  Please see attached screenshot for all the attributes that I populated.  Heading was calculated.  Anything else impacts the camera locations?

0 Kudos
PeterBecker
Esri Regular Contributor

You are correct, the current implementation does not take the Pitch for CamHeading when using 360 imagery. The CamPitch etc are used for approx orientation and does not include the rotation for the 360 imagery. We will look to refine this. In the mean time the solution is to create a field call CamOri and populate with a string of the following form

3|wkid_h|wkid_v|X|Y|Z|CamHeading|CamPitch – 90|CamRoll

wkid_h should be the Horizontal SRS, 

if Orthometric height, wkid_v = 105700

if ellipsoid height., wkid_v = 115700

X,Y should be available

Z is absolute height (not height above ground. You will need to determine the height possibly by offsetting the ground elevation with height of the sensor above the ground. 

Oriented Imagery will pick this up and use this to more accurately render

 

 

Regards

0 Kudos
CharlesDeng1
Emerging Contributor

Thank you Peter again for your time and solution.  I added CamOri field and populated with expression '3|3857|115700|' + str(!X!) + '|' + str(!Y!) + '|' + str(!Z! + !AvgHtAG!) +'|' + str(!CamHeading!) + '|' + str(!CamPitch! - 90) + '|' + str(!CamRoll!).  But still no luck to fix the problem, meaning the green dots are still in the air in the forward direction, just nothing happens.

0 Kudos