Hexagon Geospatial
MENU

GeoMedia

Search for an answer, post a question, or answer other users' questions in our GeoMedia support discussions. This discussion board is a great way to collaborate with industry peers around the world. It is intended for discussion and support of the GeoMedia Desktop and Add-on applications.
Showing results for 
Search instead for 
Do you mean 
Reply
Contributor
Posts: 45
Registered: ‎05-11-2017

Update attributes based on overlaping feature

Hi all,

 

I have 2 polygon vector layers.

The first one is a Parcel layer and the second one is a Cadastral municipality.

In Parcel layer there is attribute Cadastral_municipality_ID, but there is no atribute Cadastral_municipality_Name.

In Cadastral municipality layer there is both Cadastral_municipality_ID and Cadastral_municipality_Name attributes.

 

Is there any way in GeoMedia to update  attributes in Parcel layer with Cadastral_municipality_Name from Cadastral municipality layer

 

Regards,

Micko

Regular Contributor
Posts: 207
Registered: ‎05-25-2016

Re: Update attributes based on overlaping feature

Hi Micko

 

Use a analytical merge query to match the parcels.

Then use the command to fill attributes (i guess, it's only available with GM Professional or Advanced, or even only Professional) to transfer the values.

 

Best regads,

hesrah

 

Highlighted
Staff
Posts: 159
Registered: ‎02-02-2016

Re: Update attributes based on overlaping feature

GeoMedia offers a powerful Analysis command called Aggregation which is very useful for summarizing attributes from one feature set or query of detail items to another feature set or query of summary items.   The most standard and common use of aggregation is to summarize from many detail items up to fewer summary features.  For example you might aggregate information from points representing cities up to Country area polygons to sum the detail city population values;   While the Aggregation command is easiest to use when aggregating from many details up to fewer summary features, you can (with certain limitations) use it in the opposite direction.  That is to migrate information down from larger detail items to smaller summary features.. This however is NOT the easiest way to learn the command.

 

Here’s an example workflow that assumes that the parcels may overlap multiple municipality (MUNI) areas.

gra1.png

 

We can obtain a concatenated list of the MUNI names or we can use an extra query or 2 to LOOKUP the MUNI name of largest overlap.

  1. Use Analysis > Spatial Intersection to spatially intersect the Parcels with the MUNI features where they overlap. This will create spatial intersection geometries that combine both the Parcel and MUNI feature attributes where they overlap.

gra2.png

  1. Optionally examine the results and note the order of the combine attributes list the Parcels (the first / top level feature) first. If there are matching/conflicting field names the Spatial Intersection process adds a numeric 1 suffix.
  2. Select Analysis > Aggregation. Select Parcels as the summary feature.  For the detail feature, select the spatial intersection query created earlier.

gra3.png

Now we must relate the detail items to the summary items.  This can be done spatially, using attribute relations similar to a join or both spatially and using attributes.  In this case recall that each spatially intersected geometry has both parcel and MUNI attributes.  So we can relate the parcel ID between the detail and summary items.

  1. Select the Attribute Aggregation tab. Select the primary key of the Parcel (left side) for the Summary attribute.  Select the corresponding primary key from the spatial intersection (right-side) for the Detail attribute, and then add the attribute pair down.  (See graphic below). 

gra4.png

You can now use the LOOKUP function to lookup the MUNI name that has the largest spatial intersection area value.  The syntax for LOOKUP is:

LOOKUP(what, where, result)

gra5.png

  1. Click on the Output tab.
  2. Click on the New button to bring up the Functional Attribute dialog.
  3. Build the following expression:

LOOKUP(MAX(AREA(Detail.IntersectionGeometry)),AREA(Detail.IntersectionGeometry),Detail.Name)

gra6.png

In this case we are dynamically calculating the where using the AREA(Detail.IntesectionGeometry), then finding the condition as the MAX value, and returning the result as the desired Detail MUNI Name.

 

Note: The examples here are based on English USA regional settings which uses a comma as a separator.  You may need to use a semicolon depending on your regional settings.

 

You might also build other expressions such as a COUNT(*) to count the number of spatial intersections.

 

To concatenate a comma separated list try:

CONCATENATE(",",Detail.Name)

If you expect lists that exceed 255 characters then you may want to CAST the Detail.Name to memo.

CONCATENATE(",",CAST(Detail.Name,MEMO))

Since the Aggregation query is summarized to the Parcels, you can use the Aggregation query itself as input to the Vector > Update > Update Attributes command.  In Update Attributes, if you go into the Expression for the field to be updated, you should be able to simply select the previously calculated value from the list of available attributes.

 

gra10.png

Do you need immediate support?
If you encounter a critical issue and need immediate assistance please submit a Service Request through our Support Portal.