Hi, This is probably a really simple question. Is there a way to filter out lines which have some attributes in common? For example, i want alle lines who has the same "eindkoppelpunt" and where the attribute is the same, without giving the specific value of the attributes. Is this clear?.
Have you looked at the Matcher?
Have you looked at the Matcher?
Can I ask what is "eindkoppelpunt"? It sounds like endpoint to me...
It's an endpoint but at the same time it's also an startpoint.
Can I ask what is "eindkoppelpunt"? It sounds like endpoint to me...
I think the matcher doesn't do exactly what i want. If i have for example 3 different lines with the same endpoint but with 2 times the same "EIG" and 1 different "EIG". The matcher takes the two lines with the same EIG trough the "matched" but if one of the attributes of EIG doesn't match, i don't want that it's a match. I don't know if i'm making any sense :-)
Then I don't think a Matcher will be enough, since it evaluates entire geometry (not just start/endpoints). If you have a case described in picture bellow.
I believe that first you need to ID the lines (Counter), extract all start and endpoint (Snipper will do the trick), use Matcher on points (with attribute of your choice as well) and use Feature Merger (requestor=Lines, Supplier= Points) to see which lines (with according start/endpoints) are matched (requestor and supplier attribute is _count).
Hope it helps
Have a look at the CRC calculator its my favourite transformer for change detection.
I think the matcher doesn't do exactly what i want. If i have for example 3 different lines with the same endpoint but with 2 times the same "EIG" and 1 different "EIG". The matcher takes the two lines with the same EIG trough the "matched" but if one of the attributes of EIG doesn't match, i don't want that it's a match. I don't know if i'm making any sense :-)
naamloos.pngcapture.png
I have to give the "koppelpunt" an owner (EIG). I'm only using the lines for their attibutes. If there is only one line that ends on that point then it's easy but in the example ther are 3 lines that ends there. If that happens then i have to determine which one i'm gonna gona use bij giving an order on the attribute EIG, f.e. If there is an EIG = AQF that has priority, second in line is EIG = Gemeente, then EIG = Privé etc...
The lines have an attribute "Eindkoppelpunt" that is the same as the ID of the Koppelpunt.
I have to do the same for the beginpoints of each line, so each koppelpunt has an EIG from the "Beginkoppelpunt" and from the "Eindkoppelpunt".
naamloos.pngcapture.png
I have to give the "koppelpunt" an owner (EIG). I'm only using the lines for their attibutes. If there is only one line that ends on that point then it's easy but in the example ther are 3 lines that ends there. If that happens then i have to determine which one i'm gonna gona use bij giving an order on the attribute EIG, f.e. If there is an EIG = AQF that has priority, second in line is EIG = Gemeente, then EIG = Privé etc...
The lines have an attribute "Eindkoppelpunt" that is the same as the ID of the Koppelpunt.
I have to do the same for the beginpoints of each line, so each koppelpunt has an EIG from the "Beginkoppelpunt" and from the "Eindkoppelpunt".
I think I understand.
1. Get Eindkoppelpunt: use Splitter (by Vertex: starting and ending vertex -1) this will give you endpoints
2. Use Matcher on Eindkoppelpunt and koppelpunt.
3. From matched port separate Eindkoppelpunt and koppelpunt using AttributeFilter (by fme_feature_type)
4. Use Sorter of endpoints. Sort alphabetical all Eindkoppelpunt (by EIG)
5. Use SpatialFilter. You'll be checking if koppelpunt is same as Eindkoppelpunt (Filter: Eindkoppelpunt, Candidate: koppelpunt, Operation: Equals)
Passed port will give you all koppelpunt with attributes of first Eindkoppelpunt (feel free to remove all but EIG with AttributeRemover).
Repeat the same procedure for Beginkoppelpunt (in Splitter indices are 0)
Hope it helps
I think I understand.
1. Get Eindkoppelpunt: use Splitter (by Vertex: starting and ending vertex -1) this will give you endpoints
2. Use Matcher on Eindkoppelpunt and koppelpunt.
3. From matched port separate Eindkoppelpunt and koppelpunt using AttributeFilter (by fme_feature_type)
4. Use Sorter of endpoints. Sort alphabetical all Eindkoppelpunt (by EIG)
5. Use SpatialFilter. You'll be checking if koppelpunt is same as Eindkoppelpunt (Filter: Eindkoppelpunt, Candidate: koppelpunt, Operation: Equals)
Passed port will give you all koppelpunt with attributes of first Eindkoppelpunt (feel free to remove all but EIG with AttributeRemover).
Repeat the same procedure for Beginkoppelpunt (in Splitter indices are 0)
Hope it helps
I don't really also understand what you ment with stap 3.
Thanks for your suggestion.
I don't really also understand what you ment with stap 3.
Thanks for your suggestion.
Thanks
Hi, so give me a way so the result is that for every "koppelpunt" i have the attribute from the EIG from the line that begins with that "koppelpunt" (eig1) and the EIG (eig2) from the line that ends with that koppelpunt. If theres more than one line that end or begins, i want to choose or i want alle the attributes from all the lines on that 1 koppelpunt :-)
Stupid question but how can i provide you sample data ( i have shapefiles)
Hi, so give me a way so the result is that for every "koppelpunt" i have the attribute from the EIG from the line that begins with that "koppelpunt" (eig1) and the EIG (eig2) from the line that ends with that koppelpunt. If theres more than one line that end or begins, i want to choose or i want alle the attributes from all the lines on that 1 koppelpunt :-)
Stupid question but how can i provide you sample data ( i have shapefiles)
Hi, @nath
I solved your problem. In attachment there's fmw that will do the trick.
By default it gives you alphabetically first EIG. If there are multiple EIGs they are stored in list which is concatenated in attribute _concatenated_EIG. This attribute gives you all EIGs that were matched.
Since you have all data in attributes and you need to merge attributes from one feature to another I used FeatureMerger (no necessity of using Matcher or SpatialFilter). And you've allready said that kokoppelpunts.fmwppelpunten aren't perfectly caught at the lines :)
Hope it helps,
Želimir
Hi, @nath
I solved your problem. In attachment there's fmw that will do the trick.
By default it gives you alphabetically first EIG. If there are multiple EIGs they are stored in list which is concatenated in attribute _concatenated_EIG. This attribute gives you all EIGs that were matched.
Since you have all data in attributes and you need to merge attributes from one feature to another I used FeatureMerger (no necessity of using Matcher or SpatialFilter). And you've allready said that kokoppelpunts.fmwppelpunten aren't perfectly caught at the lines :)
Hope it helps,
Želimir
I think this is exactly what i needed.