On filling large data

So I have one simple question, but i couldn't find out the precise answer for my question. I want to make ODK to collect the data; scenario is as follows:

I have to collect the data of thousands of trees (all tagged with unique number).
I will go regularly to the field like once in every month and collect multiple type of data.

So these thousands of trees are in the form of grids. Like few hundreds in one grid and others in rest of the grids. Number of trees in each grid varies.

I want to create a odk form in such a way that, I need to know the number of trees in each grid, and as i enter the tree number i should get the details of the tree and previous recorded data in 'non editable format'. Then i should get option to fill the data.

I have the tree details in CSV format now.
If it's map will it create too much clutter and difficult in map to choose these trees in a small geographical area?

I would love to hear the suggestions and ideas.
Thanks in advance

Welcome to the ODK forum, @San97. When you get a chance, please introduce yourself here and don't hesitate to use a real photo as your avatar :slight_smile:

Yes you can achieve such a form with ODK.
A first question asking the grid number you visit.
A second one to choose the tree on a map on in a list (the tree list is filtered ti show only the trees of the selected grid using choice_filter)
And a calculation to get data from your csv file into a text or note (read-only) field (like here with the phone number using instance() function)

Does it seems to fit your needs ?

New Entity Based Data Collection capabilities will probably help you in a near future :wink:

1 Like

Hi Suresh here, Cool, thanks @mathieubossaert.
But will there be a way to keep track of which trees completed or once I fill the data of one tree, it should not appear to me in the list

Or like if i type the grid number, it should show me the list of remaining and completed trees.


Hi Suresh,

during the form session, you will be able to filter the choices (the tree lists) to hide the ones that were already selected and described :

Between sessions, until entities capacities are fully available, you will have to add a field (ex. visited) in your trees csv files and filter choices on it, For example for choice_filter :

visited = 'true'

Many thanks @mathieubossaert
One more question (not sure how many more to come😉)
If i am doing this survey on a regular basis for years, can I design the form in such a way that, the next time I visit to fill the form, can values from the previous survey be seen in non editable form?

You will have to update the csv tree file at the end of the year n with updated data for each tree and the publish a new version for year n+1. In your form you will be able to show a readonly text field containing last information for the current tree.

It's a very similar scenario to some of mine.

Ah, cool:) thanks. I would love to see templatekf your form if you don't mind sharing them:)

Updating CSV each time is a bit painful, since my cycle of visit repeats every fortnight:)

As soon as the form will exist I will of course share it here.
For the moment different forms are achieving some of your need but not yet one only form does it all (but it will soon).
here a first one using select with map appearance and hiding already selected grid cells :

Here a showcase about "auto" updating csv file (will soon be obsolete with entity based data collection)

And finally here an example where we pull a static value form csv file to show it in a note (lines 65 to 78) of the xlsform :