Skip to main content

Hello ,

i have 2 dataset with different geometry

points has the same id (points id at dataset 1 is the same points id at dataset 2 (same color as picture) but each point has different geometry and lines also has different geometry. 

probably , there are few points Id at the middle of network at dataset 1 are not the same point Id at dataset 2 .

 

Lines in each dataset has different id ,

but they connect with same id point in different dataset but with different geometry .

i would like to compare between two dataset and find which line id from dataset 1 equal line id from dataset 2 .

my target to get specific attribute from lines at dataset 1 to provide for each lines equally at dataset 2 .

 

FME 2021

Besides just the picture, would it be possible to provide a sample dataset?

 

From what you describe/show it seems that each line(segment) can be uniquely identified by its start and end vertex/point.

Since you mention that the id's of the vertices/points are the same, I suppose you can join the lines together by using the id of its start and end vertex (i.e. with a FeatureJoiner or FeatureMerger).


Besides just the picture, would it be possible to provide a sample dataset?

 

From what you describe/show it seems that each line(segment) can be uniquely identified by its start and end vertex/point.

Since you mention that the id's of the vertices/points are the same, I suppose you can join the lines together by using the id of its start and end vertex (i.e. with a FeatureJoiner or FeatureMerger).

I was thinking to use topology builder then join with node start and end , but there are some point in the middle of network has no same id of points .

i forgot to describe it in picture ,

As example , Possibly there is a new point between black point and green point at both dataset 1 and dataset 2

but This id of each point are not the same .

What should I do at this case ?


I was thinking to use topology builder then join with node start and end , but there are some point in the middle of network has no same id of points .

i forgot to describe it in picture ,

As example , Possibly there is a new point between black point and green point at both dataset 1 and dataset 2

but This id of each point are not the same .

What should I do at this case ?

Ok, I'm personally not so familiar with the TopologyBuilder, but briefly looking at it, I can imagine that in this usecase it may be quite usefull.

 

I'm not really sure if I'm the right person to help you further. In any way, as mentioned, I think that it would be much easier for others to help you if you could provide sample dataset(s) and/or a brief sample workspace to practically engage in your usecase.

 

From my, maybe inexperience view on this question, it seems that if you have a new midpoint between a given set of points, and this is the case for both datasets, it should be possible to assign this new midpoint the same id in both datasets, and go at it using the 'regular approach' of joining on id of start and end vertex.


I was thinking to use topology builder then join with node start and end , but there are some point in the middle of network has no same id of points .

i forgot to describe it in picture ,

As example , Possibly there is a new point between black point and green point at both dataset 1 and dataset 2

but This id of each point are not the same .

What should I do at this case ?

Thanks for ur reply .

the data belong to company ,so I believe that I am not able to upload the data .

but if the dataset 1 has some points without id ,

the dataset 2 has also some points without id.

how should I provide same id for both of them ?

i am not creating new data ,

the data already existed with points has same id and other points with different id but at the same position in each dataset .

 


I was thinking to use topology builder then join with node start and end , but there are some point in the middle of network has no same id of points .

i forgot to describe it in picture ,

As example , Possibly there is a new point between black point and green point at both dataset 1 and dataset 2

but This id of each point are not the same .

What should I do at this case ?

Check, I get that you may not be allowed to share company data. What I meant was, maybe you can create a similar dataset, that doesn't contain sensitive data, but that does illustrate the problem you are trying to solve. If you could for example provide a dataset that would be the digital counterpart of the screenshot you shared, that would already be of help.

 

Regarding the question of how to provide an id for vertices in the dataset that don't have one yet. I guess it depends on the situation/network, if all vertices without an id are mid and/or endpoints that are linked to vertices that do have an id (and that id be the same in both datasets), you can;

  • identify the vertices that don't have an id
  • find out which vertices they are connected to (these are assumed to have an id)
  • store these 'known linked ids' to the vertices that don't have an id.
  • join/match the vertices without id in both datasets using these 'known linked ids'
  • create a new id for the vertices without id (due to the join/match you can use this same new id in both datasets).

I believe then you have the situation that both datasets have vertices with similar ids, and you can use the methodology proposed before (joining/matching edges using the id of the start and end vertex).

 

If the situation is more complex, e.g. there are multiple vertices without an id, I don't think it will be possible to 'fill in the blanks' (assign a new id for vertices without an id), and the problem posed is basically not (uniquely) solvable.


Reply