@kumarkannan1980 Hi there, thanks for your question. If I understand your ask correctly, you have some data which spans a few years of interest, and you would like to first filter the data by an area of interest, and then split that data out by year and dissolve each year's data. If this is the case, you could use a SpatialFilter transformer to extract the data by an area of interest. Or, there may also be a Spatial Filter parameter for the object that you're using to perform you DB query.
Once you've extracted your data by area, you could use an AttributeFilter transformer to split your data into different streams based on year. Just make sure that, when you set up the AttributeFilter, you choose to Import your year values from the dataset or feature cache. This will bring the years of interest into the Possible Attribute Values table of the transformer. See the screenshot below:
Hopefully that helps out! If you need any further assistance, don't hesitate to reach out again 🙂
Hi @natalieatsafe
Thanks for the reply . I tried the solution but I am facing difficulty to add the condition like (column1 > year AND column2<year) in attribute filter , could you please help me in this regard . In addition I need to loop the year starting from 2000 to 1830 and for each year I need to apply above condition to fetch the parcel from DB and find the topology errors if any.
I expect your data contains the year when each parcel is created, and the year when the parcel expires. In that case, create a copy of the parcel for each year it exists, and perform your tests for each year (group by year). See the demo below.
I expect your data contains the year when each parcel is created, and the year when the parcel expires. In that case, create a copy of the parcel for each year it exists, and perform your tests for each year (group by year). See the demo below.
Hi @geomancer
Thanks for the reply, I tried your solution but I didn't get the expected result. Let me describe my task in more detail.
I need to check the fabric topology year by year starting from 2000 to 1830 (I have the list of years in a text file). For that I need to use one condition (column1 < year and column2 <=year) . For that I am using the test filter, dissolver and dotnutholeextracter. My question is how can I pass the year one by one to the test filter , so that dissolver and dotnutholeextracter will identify the gaps in that particular year.
Hi, I think there may be a problem in my workflow with parcels that have no expiration year. If that is the case, you should make a provision for that in the Cloner.
In your workflow, the DonutHoleExtractor will not find overlapping polygons, only holes between polygons. Is that enough to find all topology errors?
If you can provide us with some sample data (all parcels of all years in a small region of your data set) it will be easier to help you.
Same idea, but with better dummy parcels.
Same idea, but with better dummy parcels.
Hi @geomancer ,
Thanks for your effort to clear my doubts, please find the sample data and sample condition which I need to apply for my fabric topology check.
Sample Condition:
"col1" < 1961 AND "col2" >=1961
"col1" < 1950 AND "col2" >=1950
Yes I need to find the gap only in the specific conditions fabric data.
And please find snapshot for the gaps in the specific year query.
Hi @kumarkannan1980 , thank you for the sample data!
Passing your sample data through either of the workbenches I provided (using "col1" as Year_Originate and "col2" as Year_Expire), and grouping the parcels by year in an Inspector, I get exactly the same results you want to get.
So you should be able to proceed with these data.
Adding a Dissolver and a DonutHoleExtractor, as you described, gives the holes per year.
Adding a Dissolver and a DonutHoleExtractor, as you described, gives the holes per year.
Hi @geomancer
Thanks for the solution , when I executed in Live data with 55541 parcels , it is taking lot of time . Around 2500 parcels only processed in half an hour after that it throws memory error, even though I tried in high end machine.
Adding a Dissolver and a DonutHoleExtractor, as you described, gives the holes per year.
Ahhhhhhhhhhh, that's a pity!
You can use a variation of the workspace with the selection of one year each time you run it (use a Published Parameter to set the year each time the workspace is run).
Or you can create a master workspace, which runs a second workspace from a WorkspaceRunner.
The master workspace sends Year values, the second workspace processes each year seperately, and exports the holes to shapefiles.
Hi @geomancer
Thanks for the solution , when I executed in Live data with 55541 parcels , it is taking lot of time . Around 2500 parcels only processed in half an hour after that it throws memory error, even though I tried in high end machine.
Hi @geomancer
Thanks a lot for helping me to find the solution for my task. It is working fine.
Adding a Dissolver and a DonutHoleExtractor, as you described, gives the holes per year.
Hi @geomancer ,
I need one more help from you. I need to have couple of workspacerunner in my master workbench. If the first workspacerunner completes the job second workspacerunner need to start. Could you please help me in this regard?
Hi @geomancer ,
I need one more help from you. I need to have couple of workspacerunner in my master workbench. If the first workspacerunner completes the job second workspacerunner need to start. Could you please help me in this regard?
Hi, cannot really help you here (this was the first WorkspaceRunner I ever used).
But I expect you can add just string them together (add your second WorkspaceRunner to the Succeeded gate of the first WorkspaceRunner). Or maybe you can add the logic to the 'inner' workspace. My best advise here is to work it out yourself with some sample data.
Hi @geomancer ,
I need one more help from you. I need to have couple of workspacerunner in my master workbench. If the first workspacerunner completes the job second workspacerunner need to start. Could you please help me in this regard?
Hi,
Thanks for the reply.
Yes, I tried the succeeded gate but it is not working, anyway I will try and let you know.