Saturday, April 21, 2012

GOIDGenerator & CRCCalculator

keywords: Feature Manipulation Engine (FME), GOIDGenerator, CRCCalculator, Coordinate System, identifier based on location and/or geometry

...reading only caption of this post some people will immediately recognise that this post is about FME...

In the case you want to create identifyer based on the point location (coordinates) you can use GOIDGenerator or CRCCalculator transformer. If you are using GOID you should create your ID based on the first 16 characters of the generated GOID string. Later in this post I’m referencing to GOID in its shortened meaning (first 16 characters).


If you are using CRC you should take into count only geometry not attributes (Attributes to use in CRC calculation shuld be empty).



Solutions using GOID and CRC should generate the same result but in some cases it is not so. To make demonstration I have created sample workbench file.



At the beginning of the translation process I have created geometry object (point) and created GOID and CRC attribute based only on position or geometry (attributes goid_1 and _crc_1) after that I have assigned coordinate system to geometry object and repeated generation of GOID and CRC. This time values are stored in different named attributes (goid_2 and _crc_2) . At the end of the process two testers checks equality of generated GOIDs and generated CRCs. In the case of GOID the attribute value changed after CoordinateSystemSetter transformer what wasn’t case for CRC values.

Take that into account when you compare data that are coming from two different sources, sometimes the coordinates can be exact the same but omission of coordinate system definition can mislead you if you are relying on GOID.

Let me describe to you case that drove me to explore more in detail GOIDGenerator transformer. Here is conceptual schema.



Data in database do not require reprojection because they are in official coordinate system. New data are imported from csv file and after geometry creation (2DPointReplacer) data were transformed into official coordinate system. Feature merger should detect points that didn’t change coordinates. Detection wasn’t possible because branch with data coming from Oracle Spatial didn’t have coordinate system attached. The solution to this case was simple: "attach CS to the Oracle Spatial Reader" … sometimes when you are debugging workbench process such solution is not so obvious and you have to make number of tests to find out what seems to be issue.

To avoid coordinate system influence on GOID generation you can use following workflow:
  • store CS to attribute
  • remove CS
  • generate GOID
  • set CS based on attribute value


… or you can use CRCCalculator...

There are always many solution but keep in mind that coordinate system information is in some way stored in GOID and not in CRC... sometimes you need that information and sometimes you don’t.

... enjoy ...

5 comments:

  1. Define Dictionary Meaning is an easy to use platform where anyone can create and share short informal definition of any word.
    Best thing is, its free and you can even contribute without creating an account.
    This page shows you usage and meanings of Goid around the world.

    ReplyDelete
  2. Define Dictionary Meaning is an easy to use platform where anyone can create and share short informal definition of any word.
    Best thing is, its free and you can even contribute without creating an account.This page shows you usage and meanings of https://definedictionarymeaning.com/topic/45419/goid around the world.This is a great article loaded with unique information. I really enjoyed the content and agree with most of your views. Thank you for sharing.

    ReplyDelete
  3. Define Dictionary Meaning is an easy to use platform where anyone can create and share short informal definition of any word.Define Dictionary Meaning is an easy to use platform where anyone can create and share short informal definition of any word.
    Best thing is, its free and you can even contribute without creating an account.This page shows you usage and meanings ofhttps://onlinewebtutorhub.blogspot.com/2020/02/boilerplate-wordpress-plugin_45.html?showComment=1636037839873#c6943117114258101437 around the world.

    ReplyDelete
  4. How you managed to take this informative article and turn it into an interesting piece of writing is simply amazing to me.  I am very impressed with your writing abilities.  I am bookmarking this content. Define Dictionary Meaning is an easy to use platform where anyone can create and share short informal definition of any word. A goid whom is not a bright spark, Dim witted and in general useless.

    ReplyDelete
  5. I don't normally comment on articles, but I have to on this one. Your article is very well-written with a lot of useful, original and bold views on this topic.One with low intelligence or Down Syndrome. One in particular (mentioned by a certain post-punk group) leads a normal life, and nobody notices he's a goid, and he's happy that way.

    ReplyDelete