Simply? getting Z values into attribute table

21339
15
09-13-2010 11:47 AM
DataSteward
New Contributor III
This should be really simple and I'm surprized that an hour of looking through the forums and other support hasn't turned up an answer for me yet.  Am I just being blind?

I have a shapefile of 3D points, and I want to fill a field in the attribute table with the Z values.  Calculate Geometry does not offer Z coordinate options.  So I've tried using the Field Calculator with

[INDENT]Dim Output As Double
Dim pPoint As IPoint
Dim pZAware as IZAware
Set pPoint = [Shape]
Set pZAware = pPoint
pZAware.ZAware = true
Output = pPoint.Z
[/INDENT]

(and variants thereof)

But all I get for output is the value '1'
Tags (1)
0 Kudos
15 Replies
AdrianWelsh
MVP Honored Contributor

Nigel Baker

Maybe first try converting these features to 3D:

Feature To 3D By Attribute—Help | ArcGIS Desktop 

Then try getting Z values.

0 Kudos
NigelBaker
New Contributor III

Hi,

Thanks for the tip.

However that tool requires that you have an attribute field for the Z component.

I do not have this… kinda the point of this whole thread!

When I try to generate Z coordinates using update coordinates or some other tool all I get are zeros or nulls.

So either I try this tool before generating the false Z values; and the tool doesn’t run… or I try it after generating the Z field full of zeros and the 3D features are tied to the ground…

Or was there some other way to get the necessary Z values so that this tool can work?

0 Kudos
AdrianWelsh
MVP Honored Contributor

I am not sure without trying it myself. I personally would extract the exif data from the photos in order to grab all of the attributes that I would (like x,y, and z), then put those back into the attributes of the point feature.

0 Kudos
NigelBaker
New Contributor III

Hi Adrian.

Perhaps i was not clear in my original post.

This was what I did.

1. Extract Exif data from the images using Geosetter.

2. Export the data as .kmz

3. Import then .kmz into ArcGISpro using the ‘kml to layer’ tool.

4. Save the feature as a shapefile.

5. Try to write the Z value to the attribute table by either ‘Add XY coordinates’ or ‘Add geometry attributes’. These tools return either a 1 or a 0 to the attribute. (I also tried this on the feature before saving to shapefile but same result)

When I have the feature imported I can query the points and in the pop-up under PopupInfo I can see the XY AND Z coordinates, as well as, taken and GPS date and time. So the data is there associated with the feature but for some reason ArcGISpro cannot read it. It manages the XY part just fine so whats the possible problem?

As I said in my original post, this is 2019… we still live in a 3D world… why is GIS so bad at the 3rd dimension?

Anyway, sorry for the rant, but I feel like I have had to repeat myself all the time with this issue.

Nigel

0 Kudos
AdrianWelsh
MVP Honored Contributor

Hi Nigel,

Thanks for the double clarification. I understand your issue. I was suggesting another way of solving the problem versus going the geosetter route. 

It looks to me that all of this info is stored in the typical "popupinfo" box that Google files get thrown into. This info is not the easiest to extract and is usually comprised in one long html text string.

Take a look a this thread of someone else having this issue:

Converting a KML to a Layer, how to convert popupinfo data to fields? 

The answer is not what you're looking for as it links to another thread which may have some help you can utilize. It is not easy or straight forward.

Maybe instead of geosetter you could use the GeoTagged Photos To Points tool in ArcGIS Pro. For me personally, building off of what I mentioned earlier, I need more control and don't trust google/KMZ files so I extract the exif data into a CSV and work my way around the photos that way - very manually (though I have built a process that automates this).

0 Kudos
NigelBaker
New Contributor III

Hi Adrian,

So after spending an hour or 2 yesterday figuring out EXIFtool so I could generate a .csv for all image locations which I could then import into Arc.. which worked great. It turns out Arc had the right tool all along!!!

The ‘Geotagged photo to points’ tool works perfectly. Of course you have to run the ‘add XY coordinates’ tool to end up with a fully populated attribute table but hey, it is still easier than what I had figured out.

It really seems to be an issue with Arc that it can be difficult to find the right tool. Without you mentioning this as an aside, after this week long thread chat I think proves that point.

Well, problem solved. Thankyou.

Nigel

0 Kudos