Skip to main content
Question

Can I use SpatialFilter to determine coordinate system


Forum|alt.badge.img
I have a series of microstation files that do not have coordinate system definition files, but I know that each one could be in one of 6 possible systems. I am wondering if I can use SpatialFilter to overlay the drawings with boundaries of the coordinate systems/zones to determine the system, then whatever passes through (Iassuming I have to set up a spatialfilter for each system), I could then run through the coordinate setter. I have tested this, but it seems that it is not working in the way I would expect. I am testing on two drawings I know to be in one system, but they are passing through more than one spatialfilter. Is there another way to accomplish what I am trying to do? In each drawing, there is some text in the title block that tells me the system, but I am unsure of how to extract that information and apply back to the drawing.

4 replies

owen
Forum|alt.badge.img+1
  • June 10, 2014
Hi there. I like the idea - you could try reading the 'tags' from the title block if they exist - these might tell you the coordinate system. Otherwise I would use the boundingboxaccumulator to view the extents of the files first, then you can see any overlaps. It might be that they have drawn some features in the sheet space at 0,0 - you could use a creator to define a temporary clipper to remove these features first.

Forum|alt.badge.img
  • Author
  • June 10, 2014
My problem is I'm not sure how to use the tags to assign the coordinate system to the drawing. The information is definitely in there I can see it as an attirbute - but how do I apply this infomation to all features in the drawing and not just the tags/text nodes themselves?

owen
Forum|alt.badge.img+1
  • June 11, 2014
there are probably a number of ways, but you could use an aggregetor grouped by fme_basename and coordinate system to get a list of all combinations of values, then a featuremerger to join the coordsys to the other features. then set it from an attribute using a CoordinateSystemSetter and use a dataset fanout.

gio
Contributor
Forum|alt.badge.img+15
  • Contributor
  • June 12, 2014
if i would draw france using a dutch projection then i could not detect this by extracting the boundingbox of france..

 

So it totaly depends on the spatial data if this is possible.

 

You would have to make assumptions. (one would be...why t.h. would someone depict france in a dutch system...;0)

 

 

Bu tyou have the data in your titleblock...

 

 

Extract the coord.system from the titleblock. (you have to expose that. Use a datainspector to identitfy wich autocad attribute this is.)

 

 

Expose the basename. Titleblocks shoud have the same basename as do the other layers.

 

Basename is the name of your Autocad dataset, so all objects in all layers it have the same basename.

 

Use a unconditional featuremerger to aply the coord.sys attribute to the object-layers.

 

Then use a coordinatesetter set to this attribute (littel black arrow in coordinatesetterransformer).

 

 

 

( you will have to make sure that the coord.sys name in the titleblock is same as on in the coord.systems available list)

Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings