Here's a simple example of json and python script pair.
The python script will read input and output variables from
json file and execute. No need to hardcode (or edit python script)
and you can run the script on different data by editing json file.
Venka
Respected Professor,
As per your instructions, the updated example has been pushed to the GITHUB repository of PyGILE-Plus. This looks more convenient to work with. Thank you for pointing it out.
- Bhuwan
On Thu, Aug 7, 2025 at 2:02 PM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Here's a simple example of json and python script pair.
The python script will read input and output variables from
json file and execute. No need to hardcode (or edit python script)
and you can run the script on different data by editing json file.
Venka _______________________________________________ PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
Bhuvan,
a) Even variables like 'EPSG:4326' can be defined in the json file
b) are the lines below necessary in yje Python script?
config_data = { "dem_path": "/workspace/Road_Induced_Solu/Solu_Dem/Solu.tif", "temp_dir": "temp_watershed", "output_dir": "results", "watershed_dem": "results/clipped_dem.tif", "conda_env_path": "/opt/conda/envs/pygile", "saga_cmd": "/opt/saga/bin/saga_cmd", "saga_lib": "/opt/saga/lib/saga", "grass_bin": "/opt/grass/grass84/bin", "otb_bin": "/opt/otb/bin", "whitebox_tools": "/opt/conda/envs/pygile/bin/whitebox_tools" }
I think the data is being read from the json file.
c) each python script will read parameters from json file, so it is better if the python file and json file share the same name.
Venka
On 8/7/2025 7:29 PM, Bhuwan Awasthi wrote:
Respected Professor,
As per your instructions, the updated example has been pushed to the GITHUB repository of PyGILE-Plus. This looks more convenient to work with. Thank you for pointing it out.
- Bhuwan
On Thu, Aug 7, 2025 at 2:02 PM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Here's a simple example of json and python script pair.
The python script will read input and output variables from
json file and execute. No need to hardcode (or edit python script)
and you can run the script on different data by editing json file.
Venka _______________________________________________ PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
Respected Professor,
Thank you for your very good advice. You are completely right with everything: a) EPSG:4326 stored in JSON: Done! Instead of hardcoding them directly in the Python script, the string variables 'EPSG: 4326' are now in the JSON (config) file.
b) Avoid the redundant config_data dictionary: Done! The hardcoded lines were unnecessary and are now removed, since the config_data is also read from the JSON file.
The JSON file is created if it does not yet exist (first start of the software) The configuration is always read from the JSON file The redundant hardcoded dictionary is removed
c) Naming is not matching: Done! The watershed_analysis.py will always create and read the corresponding watershed_analysis.json, leading to a perfectly logical relationship between Python file and JSON config.
This in fact created a clean, professional, and maintainable codebase !!
Thank you for these great tips that have strongly improved the code structure.
- Bhuwan
On Thu, Aug 7, 2025 at 6:11 PM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Bhuvan,
a) Even variables like 'EPSG:4326' can be defined in the json file
b) are the lines below necessary in yje Python script?
config_data = { "dem_path": "/workspace/Road_Induced_Solu/Solu_Dem/Solu.tif", "temp_dir": "temp_watershed", "output_dir": "results", "watershed_dem": "results/clipped_dem.tif", "conda_env_path": "/opt/conda/envs/pygile", "saga_cmd": "/opt/saga/bin/saga_cmd", "saga_lib": "/opt/saga/lib/saga", "grass_bin": "/opt/grass/grass84/bin", "otb_bin": "/opt/otb/bin", "whitebox_tools": "/opt/conda/envs/pygile/bin/whitebox_tools" }
I think the data is being read from the json file.
c) each python script will read parameters from json file, so it is better if the python file and json file share the same name.
Venka
On 8/7/2025 7:29 PM, Bhuwan Awasthi wrote:
Respected Professor,
As per your instructions, the updated example has been pushed to the
GITHUB
repository of PyGILE-Plus. This looks more convenient to work with. Thank you for pointing it out.
- Bhuwan
On Thu, Aug 7, 2025 at 2:02 PM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Here's a simple example of json and python script pair.
The python script will read input and output variables from
json file and execute. No need to hardcode (or edit python script)
and you can run the script on different data by editing json file.
Venka _______________________________________________ PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
Hi Bhuwan,
Good morning! Thanks for the update.
a) not only variable 'EPSG: 4326', but any variable (input data, program parameter etc.)
that the user would need to change can be defined in the json file
b) The json file could include comments to make it more understandable
c) Using a) and b) above, it should be possible for user to edit the json file
to suit his/her needs.
d) with c) above, changing the python script could not be necessary or
minimal.
e) You can try out a) to d) create/test a python script and a json file pair
(with the same name and different file extension) and see if it works OK.
f) after you have done e), you can upload the python and json file pair
to git hub.
Hope what I mention makes sense.
Best,
Venka
On 8/8/2025 2:00 AM, Bhuwan Awasthi wrote:
Respected Professor,
Thank you for your very good advice. You are completely right with everything: a) EPSG:4326 stored in JSON: Done! Instead of hardcoding them directly in the Python script, the string variables 'EPSG: 4326' are now in the JSON (config) file.
b) Avoid the redundant config_data dictionary: Done! The hardcoded lines were unnecessary and are now removed, since the config_data is also read from the JSON file.
The JSON file is created if it does not yet exist (first start of the software) The configuration is always read from the JSON file The redundant hardcoded dictionary is removed
c) Naming is not matching: Done! The watershed_analysis.py will always create and read the corresponding watershed_analysis.json, leading to a perfectly logical relationship between Python file and JSON config.
This in fact created a clean, professional, and maintainable codebase !!
Thank you for these great tips that have strongly improved the code structure.
- Bhuwan
On Thu, Aug 7, 2025 at 6:11 PM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Bhuvan,
a) Even variables like 'EPSG:4326' can be defined in the json file
b) are the lines below necessary in yje Python script?
config_data = { "dem_path": "/workspace/Road_Induced_Solu/Solu_Dem/Solu.tif", "temp_dir": "temp_watershed", "output_dir": "results", "watershed_dem": "results/clipped_dem.tif", "conda_env_path": "/opt/conda/envs/pygile", "saga_cmd": "/opt/saga/bin/saga_cmd", "saga_lib": "/opt/saga/lib/saga", "grass_bin": "/opt/grass/grass84/bin", "otb_bin": "/opt/otb/bin", "whitebox_tools": "/opt/conda/envs/pygile/bin/whitebox_tools" }
I think the data is being read from the json file.
c) each python script will read parameters from json file, so it is better if the python file and json file share the same name.
Venka
On 8/7/2025 7:29 PM, Bhuwan Awasthi wrote:
Respected Professor,
As per your instructions, the updated example has been pushed to the
GITHUB
repository of PyGILE-Plus. This looks more convenient to work with. Thank you for pointing it out.
- Bhuwan
On Thu, Aug 7, 2025 at 2:02 PM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Here's a simple example of json and python script pair.
The python script will read input and output variables from
json file and execute. No need to hardcode (or edit python script)
and you can run the script on different data by editing json file.
Venka _______________________________________________ PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
Respected Professor,
Thank you for your guidance on JSON and Python script pairs. The approach you suggested has been implemented for the example file as follows:
What is accomplished:
a) *All variables in JSON:* Input data paths, processing parameters, tool configurations, and visualization settings are stored in watershed_analysis.json rather than being hardcoded in the script.
A Notebook called "JSON Generator" where we can edit all the input parameters and run; then run the main python program that will take all input from the newly generated JSON file. Since, for jupyter, direct editing of JSON was not available.
b) *Comments included:* The JSON file includes clear descriptions of the parameters to make it user-friendly and self-explanatory.
c) *User-friendly editing: *Users can easily edit all settings (DEM paths, threshold values, tool paths, visualization parameters) by modifying only the JSON file.
d) *Minimal Python script changes: *The Python script reads the configuration from the JSON file and requires no user changes to work with different datasets or parameters.
e) *Same name convention:* Created the pair watershed_analysis.py and watershed_analysis.json as you suggested.
Implementation follows the above changes. Thank you!
- Bhuwan
On Fri, Aug 8, 2025 at 9:34 AM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Hi Bhuwan,
Good morning! Thanks for the update.
a) not only variable 'EPSG: 4326', but any variable (input data, program parameter etc.)
that the user would need to change can be defined in the json file
b) The json file could include comments to make it more understandable
c) Using a) and b) above, it should be possible for user to edit the json file
to suit his/her needs.
d) with c) above, changing the python script could not be necessary or
minimal.
e) You can try out a) to d) create/test a python script and a json file pair
(with the same name and different file extension) and see if it works OK.
f) after you have done e), you can upload the python and json file pair
to git hub.
Hope what I mention makes sense.
Best,
Venka
On 8/8/2025 2:00 AM, Bhuwan Awasthi wrote:
Respected Professor,
Thank you for your very good advice. You are completely right with everything: a) EPSG:4326 stored in JSON: Done! Instead of hardcoding them directly in the Python script, the string variables 'EPSG: 4326' are now in the JSON (config) file.
b) Avoid the redundant config_data dictionary: Done! The hardcoded lines were unnecessary and are now removed, since the config_data is also read from the JSON file.
The JSON file is created if it does not yet exist (first start of the software) The configuration is always read from the JSON file The redundant hardcoded dictionary is removed
c) Naming is not matching: Done! The watershed_analysis.py will always create and read the corresponding watershed_analysis.json, leading to a perfectly logical relationship between Python file and JSON config.
This in fact created a clean, professional, and maintainable codebase !!
Thank you for these great tips that have strongly improved the code structure.
- Bhuwan
On Thu, Aug 7, 2025 at 6:11 PM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Bhuvan,
a) Even variables like 'EPSG:4326' can be defined in the json file
b) are the lines below necessary in yje Python script?
config_data = { "dem_path": "/workspace/Road_Induced_Solu/Solu_Dem/Solu.tif", "temp_dir": "temp_watershed", "output_dir": "results", "watershed_dem": "results/clipped_dem.tif", "conda_env_path": "/opt/conda/envs/pygile", "saga_cmd": "/opt/saga/bin/saga_cmd", "saga_lib": "/opt/saga/lib/saga", "grass_bin": "/opt/grass/grass84/bin", "otb_bin": "/opt/otb/bin", "whitebox_tools": "/opt/conda/envs/pygile/bin/whitebox_tools" }
I think the data is being read from the json file.
c) each python script will read parameters from json file, so it is
better
if the python file and json file share the same name.
Venka
On 8/7/2025 7:29 PM, Bhuwan Awasthi wrote:
Respected Professor,
As per your instructions, the updated example has been pushed to the
GITHUB
repository of PyGILE-Plus. This looks more convenient to work with.
Thank
you for pointing it out.
- Bhuwan
On Thu, Aug 7, 2025 at 2:02 PM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Here's a simple example of json and python script pair.
The python script will read input and output variables from
json file and execute. No need to hardcode (or edit python script)
and you can run the script on different data by editing json file.
Venka _______________________________________________ PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
Hi Bhuvan,
Good morning!
Good work!
Maybe we could upload the output watershed_analysis.json file on github in the notebook folder.
Another way of using the json file would be edit in a text editor and run the python code.
Best,
Venka
On 8/10/2025 7:29 PM, Bhuwan Awasthi wrote:
Respected Professor,
Thank you for your guidance on JSON and Python script pairs. The approach you suggested has been implemented for the example file as follows:
What is accomplished:
a) *All variables in JSON:* Input data paths, processing parameters, tool configurations, and visualization settings are stored in watershed_analysis.json rather than being hardcoded in the script.
A Notebook called "JSON Generator" where we can edit all the input parameters and run; then run the main python program that will take all input from the newly generated JSON file. Since, for jupyter, direct editing of JSON was not available.
b) *Comments included:* The JSON file includes clear descriptions of the parameters to make it user-friendly and self-explanatory.
c) *User-friendly editing: *Users can easily edit all settings (DEM paths, threshold values, tool paths, visualization parameters) by modifying only the JSON file.
d) *Minimal Python script changes: *The Python script reads the configuration from the JSON file and requires no user changes to work with different datasets or parameters.
e) *Same name convention:* Created the pair watershed_analysis.py and watershed_analysis.json as you suggested.
Implementation follows the above changes. Thank you!
- Bhuwan
On Fri, Aug 8, 2025 at 9:34 AM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Hi Bhuwan,
Good morning! Thanks for the update.
a) not only variable 'EPSG: 4326', but any variable (input data, program parameter etc.)
that the user would need to change can be defined in the json file
b) The json file could include comments to make it more understandable
c) Using a) and b) above, it should be possible for user to edit the json file
to suit his/her needs.
d) with c) above, changing the python script could not be necessary or
minimal.
e) You can try out a) to d) create/test a python script and a json file pair
(with the same name and different file extension) and see if it works OK.
f) after you have done e), you can upload the python and json file pair
to git hub.
Hope what I mention makes sense.
Best,
Venka
On 8/8/2025 2:00 AM, Bhuwan Awasthi wrote:
Respected Professor,
Thank you for your very good advice. You are completely right with everything: a) EPSG:4326 stored in JSON: Done! Instead of hardcoding them directly in the Python script, the string variables 'EPSG: 4326' are now in the JSON (config) file.
b) Avoid the redundant config_data dictionary: Done! The hardcoded lines were unnecessary and are now removed, since the config_data is also read from the JSON file.
The JSON file is created if it does not yet exist (first start of the software) The configuration is always read from the JSON file The redundant hardcoded dictionary is removed
c) Naming is not matching: Done! The watershed_analysis.py will always create and read the corresponding watershed_analysis.json, leading to a perfectly logical relationship between Python file and JSON config.
This in fact created a clean, professional, and maintainable codebase !!
Thank you for these great tips that have strongly improved the code structure.
- Bhuwan
On Thu, Aug 7, 2025 at 6:11 PM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Bhuvan,
a) Even variables like 'EPSG:4326' can be defined in the json file
b) are the lines below necessary in yje Python script?
config_data = { "dem_path": "/workspace/Road_Induced_Solu/Solu_Dem/Solu.tif", "temp_dir": "temp_watershed", "output_dir": "results", "watershed_dem": "results/clipped_dem.tif", "conda_env_path": "/opt/conda/envs/pygile", "saga_cmd": "/opt/saga/bin/saga_cmd", "saga_lib": "/opt/saga/lib/saga", "grass_bin": "/opt/grass/grass84/bin", "otb_bin": "/opt/otb/bin", "whitebox_tools": "/opt/conda/envs/pygile/bin/whitebox_tools" }
I think the data is being read from the json file.
c) each python script will read parameters from json file, so it is
better
if the python file and json file share the same name.
Venka
On 8/7/2025 7:29 PM, Bhuwan Awasthi wrote:
Respected Professor,
As per your instructions, the updated example has been pushed to the
GITHUB
repository of PyGILE-Plus. This looks more convenient to work with.
Thank
you for pointing it out.
- Bhuwan
On Thu, Aug 7, 2025 at 2:02 PM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Here's a simple example of json and python script pair.
The python script will read input and output variables from
json file and execute. No need to hardcode (or edit python script)
and you can run the script on different data by editing json file.
Venka _______________________________________________ PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
Respected Professor,
Apologies for the delay. I have uploaded the respective .JSON in the notebooks folder. Thank you.
- Bhuwan
On Mon, Aug 11, 2025 at 1:04 PM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Hi Bhuvan,
Good morning!
Good work!
Maybe we could upload the output watershed_analysis.json file on github in the notebook folder.
Another way of using the json file would be edit in a text editor and run the python code.
Best,
Venka
On 8/10/2025 7:29 PM, Bhuwan Awasthi wrote:
Respected Professor,
Thank you for your guidance on JSON and Python script pairs. The approach you suggested has been implemented for the example file as follows:
What is accomplished:
a) *All variables in JSON:* Input data paths, processing parameters, tool configurations, and visualization settings are stored in watershed_analysis.json rather than being hardcoded in the script.
A Notebook called "JSON Generator" where we can edit all the input parameters and run; then run the main python program that will take all input from the newly generated JSON file. Since, for jupyter, direct editing of JSON was not available.
b) *Comments included:* The JSON file includes clear descriptions of the parameters to make it user-friendly and self-explanatory.
c) *User-friendly editing: *Users can easily edit all settings (DEM
paths,
threshold values, tool paths, visualization parameters) by modifying only the JSON file.
d) *Minimal Python script changes: *The Python script reads the configuration from the JSON file and requires no user changes to work
with
different datasets or parameters.
e) *Same name convention:* Created the pair watershed_analysis.py and watershed_analysis.json as you suggested.
Implementation follows the above changes. Thank you!
- Bhuwan
On Fri, Aug 8, 2025 at 9:34 AM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Hi Bhuwan,
Good morning! Thanks for the update.
a) not only variable 'EPSG: 4326', but any variable (input data, program parameter etc.)
that the user would need to change can be defined in the json file
b) The json file could include comments to make it more understandable
c) Using a) and b) above, it should be possible for user to edit the json file
to suit his/her needs.
d) with c) above, changing the python script could not be necessary or
minimal.
e) You can try out a) to d) create/test a python script and a json file pair
(with the same name and different file extension) and see if it works
OK.
f) after you have done e), you can upload the python and json file pair
to git hub.
Hope what I mention makes sense.
Best,
Venka
On 8/8/2025 2:00 AM, Bhuwan Awasthi wrote:
Respected Professor,
Thank you for your very good advice. You are completely right with everything: a) EPSG:4326 stored in JSON: Done! Instead of hardcoding them directly in the Python script, the string variables 'EPSG: 4326' are now in the JSON (config) file.
b) Avoid the redundant config_data dictionary: Done! The hardcoded
lines
were unnecessary and are now removed, since the config_data is also
read
from the JSON file.
The JSON file is created if it does not yet exist (first start of the software) The configuration is always read from the JSON file The redundant hardcoded dictionary is removed
c) Naming is not matching: Done! The watershed_analysis.py will always create and read the corresponding watershed_analysis.json, leading to a perfectly logical relationship between Python file and JSON config.
This in fact created a clean, professional, and maintainable codebase
!!
Thank you for these great tips that have strongly improved the code structure.
- Bhuwan
On Thu, Aug 7, 2025 at 6:11 PM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Bhuvan,
a) Even variables like 'EPSG:4326' can be defined in the json file
b) are the lines below necessary in yje Python script?
config_data = { "dem_path": "/workspace/Road_Induced_Solu/Solu_Dem/Solu.tif", "temp_dir": "temp_watershed", "output_dir": "results", "watershed_dem": "results/clipped_dem.tif", "conda_env_path": "/opt/conda/envs/pygile", "saga_cmd": "/opt/saga/bin/saga_cmd", "saga_lib": "/opt/saga/lib/saga", "grass_bin": "/opt/grass/grass84/bin", "otb_bin": "/opt/otb/bin", "whitebox_tools": "/opt/conda/envs/pygile/bin/whitebox_tools" }
I think the data is being read from the json file.
c) each python script will read parameters from json file, so it is
better
if the python file and json file share the same name.
Venka
On 8/7/2025 7:29 PM, Bhuwan Awasthi wrote:
Respected Professor,
As per your instructions, the updated example has been pushed to the
GITHUB
repository of PyGILE-Plus. This looks more convenient to work with.
Thank
you for pointing it out.
- Bhuwan
On Thu, Aug 7, 2025 at 2:02 PM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
> Here's a simple example of json and python script pair. > > The python script will read input and output variables from > > json file and execute. No need to hardcode (or edit python script) > > and you can run the script on different data by editing json file. > > Venka > _______________________________________________ > PyGILE mailing list -- pygile@geoinfo-lab.org > To unsubscribe send an email to pygile-leave@geoinfo-lab.org >
PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
Bhuvan,
Thanks of uploading the json file.
Lam, what is the update about PyGILE testing with your landslide suceptibility code?
Venka
On 8/12/2025 9:51 PM, Bhuwan Awasthi wrote:
Respected Professor,
Apologies for the delay. I have uploaded the respective .JSON in the notebooks folder. Thank you.
- Bhuwan
On Mon, Aug 11, 2025 at 1:04 PM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Hi Bhuvan,
Good morning!
Good work!
Maybe we could upload the output watershed_analysis.json file on github in the notebook folder.
Another way of using the json file would be edit in a text editor and run the python code.
Best,
Venka
On 8/10/2025 7:29 PM, Bhuwan Awasthi wrote:
Respected Professor,
Thank you for your guidance on JSON and Python script pairs. The approach you suggested has been implemented for the example file as follows:
What is accomplished:
a) *All variables in JSON:* Input data paths, processing parameters, tool configurations, and visualization settings are stored in watershed_analysis.json rather than being hardcoded in the script.
A Notebook called "JSON Generator" where we can edit all the input parameters and run; then run the main python program that will take all input from the newly generated JSON file. Since, for jupyter, direct editing of JSON was not available.
b) *Comments included:* The JSON file includes clear descriptions of the parameters to make it user-friendly and self-explanatory.
c) *User-friendly editing: *Users can easily edit all settings (DEM
paths,
threshold values, tool paths, visualization parameters) by modifying only the JSON file.
d) *Minimal Python script changes: *The Python script reads the configuration from the JSON file and requires no user changes to work
with
different datasets or parameters.
e) *Same name convention:* Created the pair watershed_analysis.py and watershed_analysis.json as you suggested.
Implementation follows the above changes. Thank you!
- Bhuwan
On Fri, Aug 8, 2025 at 9:34 AM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Hi Bhuwan,
Good morning! Thanks for the update.
a) not only variable 'EPSG: 4326', but any variable (input data, program parameter etc.)
that the user would need to change can be defined in the json file
b) The json file could include comments to make it more understandable
c) Using a) and b) above, it should be possible for user to edit the json file
to suit his/her needs.
d) with c) above, changing the python script could not be necessary or
minimal.
e) You can try out a) to d) create/test a python script and a json file pair
(with the same name and different file extension) and see if it works
OK.
f) after you have done e), you can upload the python and json file pair
to git hub.
Hope what I mention makes sense.
Best,
Venka
On 8/8/2025 2:00 AM, Bhuwan Awasthi wrote:
Respected Professor,
Thank you for your very good advice. You are completely right with everything: a) EPSG:4326 stored in JSON: Done! Instead of hardcoding them directly in the Python script, the string variables 'EPSG: 4326' are now in the JSON (config) file.
b) Avoid the redundant config_data dictionary: Done! The hardcoded
lines
were unnecessary and are now removed, since the config_data is also
read
from the JSON file.
The JSON file is created if it does not yet exist (first start of the software) The configuration is always read from the JSON file The redundant hardcoded dictionary is removed
c) Naming is not matching: Done! The watershed_analysis.py will always create and read the corresponding watershed_analysis.json, leading to a perfectly logical relationship between Python file and JSON config.
This in fact created a clean, professional, and maintainable codebase
!!
Thank you for these great tips that have strongly improved the code structure.
- Bhuwan
On Thu, Aug 7, 2025 at 6:11 PM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Bhuvan,
a) Even variables like 'EPSG:4326' can be defined in the json file
b) are the lines below necessary in yje Python script?
config_data = { "dem_path": "/workspace/Road_Induced_Solu/Solu_Dem/Solu.tif", "temp_dir": "temp_watershed", "output_dir": "results", "watershed_dem": "results/clipped_dem.tif", "conda_env_path": "/opt/conda/envs/pygile", "saga_cmd": "/opt/saga/bin/saga_cmd", "saga_lib": "/opt/saga/lib/saga", "grass_bin": "/opt/grass/grass84/bin", "otb_bin": "/opt/otb/bin", "whitebox_tools": "/opt/conda/envs/pygile/bin/whitebox_tools" }
I think the data is being read from the json file.
c) each python script will read parameters from json file, so it is
better
if the python file and json file share the same name.
Venka
On 8/7/2025 7:29 PM, Bhuwan Awasthi wrote: > Respected Professor, > > As per your instructions, the updated example has been pushed to the GITHUB > repository of PyGILE-Plus. This looks more convenient to work with.
Thank
> you for pointing it out. > > - Bhuwan > > On Thu, Aug 7, 2025 at 2:02 PM Venkatesh Raghavan via PyGILE < > pygile@geoinfo-lab.org> wrote: > >> Here's a simple example of json and python script pair. >> >> The python script will read input and output variables from >> >> json file and execute. No need to hardcode (or edit python script) >> >> and you can run the script on different data by editing json file. >> >> Venka >> _______________________________________________ >> PyGILE mailing list -- pygile@geoinfo-lab.org >> To unsubscribe send an email to pygile-leave@geoinfo-lab.org >> _______________________________________________ PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
Good afternoon, Venka-sensei
The script needed a few adjustments, but I managed to run the Machine Learning using PyGILE-Plus environment. The XGBoost model is taking some time to run and should finish this evening. I would like to address two points:
* The Docker image from Docker Hub uses Python 3.10.3, but Python 3.13 has better support for ML training and can save more time running boosting models like XGBoost. * When I tried building a local Docker image using "Dockerfile" with newer Python versions, QGIS libraries caused conflicts (they currently only work with Python ≤3.9).
Currently, my solution is to adjust the hyperparameter tuning in XGBoost to better match the size of my dataset to reduce the time it takes to run the XGBoost model. I will keep you updated as soon as I have new results.
Thank you very much.
Best regards, Tran Tung Lam
________________________________ From: Venkatesh Raghavan via PyGILE pygile@geoinfo-lab.org Sent: Wednesday, August 20, 2025 11:54 AM To: Bhuwan Awasthi st125724@ait.asia; ML for PyGILE Users and Developers pygile@geoinfo-lab.org Cc: Venkatesh Raghavan raghavan@omu.ac.jp Subject: [PyGILE] Re: simple example of json and python script pair
Bhuvan,
Thanks of uploading the json file.
Lam, what is the update about PyGILE testing with your landslide suceptibility code?
Venka
On 8/12/2025 9:51 PM, Bhuwan Awasthi wrote:
Respected Professor,
Apologies for the delay. I have uploaded the respective .JSON in the notebooks folder. Thank you.
- Bhuwan
On Mon, Aug 11, 2025 at 1:04 PM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Hi Bhuvan,
Good morning!
Good work!
Maybe we could upload the output watershed_analysis.json file on github in the notebook folder.
Another way of using the json file would be edit in a text editor and run the python code.
Best,
Venka
On 8/10/2025 7:29 PM, Bhuwan Awasthi wrote:
Respected Professor,
Thank you for your guidance on JSON and Python script pairs. The approach you suggested has been implemented for the example file as follows:
What is accomplished:
a) *All variables in JSON:* Input data paths, processing parameters, tool configurations, and visualization settings are stored in watershed_analysis.json rather than being hardcoded in the script.
A Notebook called "JSON Generator" where we can edit all the input parameters and run; then run the main python program that will take all input from the newly generated JSON file. Since, for jupyter, direct editing of JSON was not available.
b) *Comments included:* The JSON file includes clear descriptions of the parameters to make it user-friendly and self-explanatory.
c) *User-friendly editing: *Users can easily edit all settings (DEM
paths,
threshold values, tool paths, visualization parameters) by modifying only the JSON file.
d) *Minimal Python script changes: *The Python script reads the configuration from the JSON file and requires no user changes to work
with
different datasets or parameters.
e) *Same name convention:* Created the pair watershed_analysis.py and watershed_analysis.json as you suggested.
Implementation follows the above changes. Thank you!
- Bhuwan
On Fri, Aug 8, 2025 at 9:34 AM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Hi Bhuwan,
Good morning! Thanks for the update.
a) not only variable 'EPSG: 4326', but any variable (input data, program parameter etc.)
that the user would need to change can be defined in the json file
b) The json file could include comments to make it more understandable
c) Using a) and b) above, it should be possible for user to edit the json file
to suit his/her needs.
d) with c) above, changing the python script could not be necessary or
minimal.
e) You can try out a) to d) create/test a python script and a json file pair
(with the same name and different file extension) and see if it works
OK.
f) after you have done e), you can upload the python and json file pair
to git hub.
Hope what I mention makes sense.
Best,
Venka
On 8/8/2025 2:00 AM, Bhuwan Awasthi wrote:
Respected Professor,
Thank you for your very good advice. You are completely right with everything: a) EPSG:4326 stored in JSON: Done! Instead of hardcoding them directly in the Python script, the string variables 'EPSG: 4326' are now in the JSON (config) file.
b) Avoid the redundant config_data dictionary: Done! The hardcoded
lines
were unnecessary and are now removed, since the config_data is also
read
from the JSON file.
The JSON file is created if it does not yet exist (first start of the software) The configuration is always read from the JSON file The redundant hardcoded dictionary is removed
c) Naming is not matching: Done! The watershed_analysis.py will always create and read the corresponding watershed_analysis.json, leading to a perfectly logical relationship between Python file and JSON config.
This in fact created a clean, professional, and maintainable codebase
!!
Thank you for these great tips that have strongly improved the code structure.
- Bhuwan
On Thu, Aug 7, 2025 at 6:11 PM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Bhuvan,
a) Even variables like 'EPSG:4326' can be defined in the json file
b) are the lines below necessary in yje Python script?
config_data = { "dem_path": "/workspace/Road_Induced_Solu/Solu_Dem/Solu.tif", "temp_dir": "temp_watershed", "output_dir": "results", "watershed_dem": "results/clipped_dem.tif", "conda_env_path": "/opt/conda/envs/pygile", "saga_cmd": "/opt/saga/bin/saga_cmd", "saga_lib": "/opt/saga/lib/saga", "grass_bin": "/opt/grass/grass84/bin", "otb_bin": "/opt/otb/bin", "whitebox_tools": "/opt/conda/envs/pygile/bin/whitebox_tools" }
I think the data is being read from the json file.
c) each python script will read parameters from json file, so it is
better
if the python file and json file share the same name.
Venka
On 8/7/2025 7:29 PM, Bhuwan Awasthi wrote: > Respected Professor, > > As per your instructions, the updated example has been pushed to the GITHUB > repository of PyGILE-Plus. This looks more convenient to work with.
Thank
> you for pointing it out. > > - Bhuwan > > On Thu, Aug 7, 2025 at 2:02 PM Venkatesh Raghavan via PyGILE < > pygile@geoinfo-lab.org> wrote: > >> Here's a simple example of json and python script pair. >> >> The python script will read input and output variables from >> >> json file and execute. No need to hardcode (or edit python script) >> >> and you can run the script on different data by editing json file. >> >> Venka >> _______________________________________________ >> PyGILE mailing list -- pygile@geoinfo-lab.org >> To unsubscribe send an email to pygile-leave@geoinfo-lab.org >> _______________________________________________ PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
_______________________________________________ PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
Lam-san,
Thanks for the update.
Most of the processing tools in QGIS are derived from GDAL, Saga, GRASS and OTB.
So, I am wondering if we need to keep QGIS in PyGILE-Plus.
QGIS 3.44.2 still uses Python 3.9, I think and I don't see QGIS supporting Python 3.13 any
time soon.
Bhuvan, let me know you thoughts on the above.
Best,
Venka
On 8/20/2025 4:03 PM, TRAN TUNG LAM wrote:
Good afternoon, Venka-sensei
The script needed a few adjustments, but I managed to run the Machine Learning using PyGILE-Plus environment. The XGBoost model is taking some time to run and should finish this evening. I would like to address two points:
The Docker image from Docker Hub uses Python 3.10.3, but Python 3.13 has better support for ML training and can save more time running boosting models like XGBoost.
When I tried building a local Docker image using "Dockerfile" with newer Python versions, QGIS libraries caused conflicts (they currently only work with Python ≤3.9).
Currently, my solution is to adjust the hyperparameter tuning in XGBoost to better match the size of my dataset to reduce the time it takes to run the XGBoost model. I will keep you updated as soon as I have new results.
Thank you very much.
Best regards, Tran Tung Lam
From: Venkatesh Raghavan via PyGILE pygile@geoinfo-lab.org Sent: Wednesday, August 20, 2025 11:54 AM To: Bhuwan Awasthi st125724@ait.asia; ML for PyGILE Users and Developers pygile@geoinfo-lab.org Cc: Venkatesh Raghavan raghavan@omu.ac.jp Subject: [PyGILE] Re: simple example of json and python script pair
Bhuvan,
Thanks of uploading the json file.
Lam, what is the update about PyGILE testing with your landslide suceptibility code?
Venka
On 8/12/2025 9:51 PM, Bhuwan Awasthi wrote:
Respected Professor,
Apologies for the delay. I have uploaded the respective .JSON in the notebooks folder. Thank you.
- Bhuwan
On Mon, Aug 11, 2025 at 1:04 PM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Hi Bhuvan,
Good morning!
Good work!
Maybe we could upload the output watershed_analysis.json file on github in the notebook folder.
Another way of using the json file would be edit in a text editor and run the python code.
Best,
Venka
On 8/10/2025 7:29 PM, Bhuwan Awasthi wrote:
Respected Professor,
Thank you for your guidance on JSON and Python script pairs. The approach you suggested has been implemented for the example file as follows:
What is accomplished:
a) *All variables in JSON:* Input data paths, processing parameters, tool configurations, and visualization settings are stored in watershed_analysis.json rather than being hardcoded in the script.
A Notebook called "JSON Generator" where we can edit all the input parameters and run; then run the main python program that will take all input from the newly generated JSON file. Since, for jupyter, direct editing of JSON was not available.
b) *Comments included:* The JSON file includes clear descriptions of the parameters to make it user-friendly and self-explanatory.
c) *User-friendly editing: *Users can easily edit all settings (DEM
paths,
threshold values, tool paths, visualization parameters) by modifying only the JSON file.
d) *Minimal Python script changes: *The Python script reads the configuration from the JSON file and requires no user changes to work
with
different datasets or parameters.
e) *Same name convention:* Created the pair watershed_analysis.py and watershed_analysis.json as you suggested.
Implementation follows the above changes. Thank you!
- Bhuwan
On Fri, Aug 8, 2025 at 9:34 AM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Hi Bhuwan,
Good morning! Thanks for the update.
a) not only variable 'EPSG: 4326', but any variable (input data, program parameter etc.)
that the user would need to change can be defined in the json file
b) The json file could include comments to make it more understandable
c) Using a) and b) above, it should be possible for user to edit the json file
to suit his/her needs.
d) with c) above, changing the python script could not be necessary or
minimal.
e) You can try out a) to d) create/test a python script and a json file pair
(with the same name and different file extension) and see if it works
OK.
f) after you have done e), you can upload the python and json file pair
to git hub.
Hope what I mention makes sense.
Best,
Venka
On 8/8/2025 2:00 AM, Bhuwan Awasthi wrote:
Respected Professor,
Thank you for your very good advice. You are completely right with everything: a) EPSG:4326 stored in JSON: Done! Instead of hardcoding them directly in the Python script, the string variables 'EPSG: 4326' are now in the JSON (config) file.
b) Avoid the redundant config_data dictionary: Done! The hardcoded
lines
were unnecessary and are now removed, since the config_data is also
read
from the JSON file.
The JSON file is created if it does not yet exist (first start of the software) The configuration is always read from the JSON file The redundant hardcoded dictionary is removed
c) Naming is not matching: Done! The watershed_analysis.py will always create and read the corresponding watershed_analysis.json, leading to a perfectly logical relationship between Python file and JSON config.
This in fact created a clean, professional, and maintainable codebase
!!
Thank you for these great tips that have strongly improved the code structure.
- Bhuwan
On Thu, Aug 7, 2025 at 6:11 PM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
> Bhuvan, > > a) Even variables like 'EPSG:4326' can be defined in the json file > > b) are the lines below necessary in yje Python script? > > config_data = { > "dem_path": "/workspace/Road_Induced_Solu/Solu_Dem/Solu.tif", > "temp_dir": "temp_watershed", > "output_dir": "results", > "watershed_dem": "results/clipped_dem.tif", > "conda_env_path": "/opt/conda/envs/pygile", > "saga_cmd": "/opt/saga/bin/saga_cmd", > "saga_lib": "/opt/saga/lib/saga", > "grass_bin": "/opt/grass/grass84/bin", > "otb_bin": "/opt/otb/bin", > "whitebox_tools": "/opt/conda/envs/pygile/bin/whitebox_tools" > } > > I think the data is being read from the json file. > > c) each python script will read parameters from json file, so it is
better
> if the python file and json file share the same name. > > > Venka > > > On 8/7/2025 7:29 PM, Bhuwan Awasthi wrote: >> Respected Professor, >> >> As per your instructions, the updated example has been pushed to the > GITHUB >> repository of PyGILE-Plus. This looks more convenient to work with.
Thank
>> you for pointing it out. >> >> - Bhuwan >> >> On Thu, Aug 7, 2025 at 2:02 PM Venkatesh Raghavan via PyGILE < >> pygile@geoinfo-lab.org> wrote: >> >>> Here's a simple example of json and python script pair. >>> >>> The python script will read input and output variables from >>> >>> json file and execute. No need to hardcode (or edit python script) >>> >>> and you can run the script on different data by editing json file. >>> >>> Venka >>> _______________________________________________ >>> PyGILE mailing list -- pygile@geoinfo-lab.org >>> To unsubscribe send an email to pygile-leave@geoinfo-lab.org >>> > _______________________________________________ > PyGILE mailing list -- pygile@geoinfo-lab.org > To unsubscribe send an email to pygile-leave@geoinfo-lab.org >
PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
Respected Professor,
I hope you are doing well. I agree with you that most of the QGIS fundamentals are already included in other libraries. Removing it would reduce the container size as well. We would be losing the processing framework but we can directly call the tools. I will work on integrating this new architecture. However, since it involves replacing all the existing files including the notebooks, I will require some processing time to complete it.
Thank you.
On Sat, Aug 23, 2025 at 1:26 PM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Lam-san,
Thanks for the update.
Most of the processing tools in QGIS are derived from GDAL, Saga, GRASS and OTB.
So, I am wondering if we need to keep QGIS in PyGILE-Plus.
QGIS 3.44.2 still uses Python 3.9, I think and I don't see QGIS supporting Python 3.13 any
time soon.
Bhuvan, let me know you thoughts on the above.
Best,
Venka
On 8/20/2025 4:03 PM, TRAN TUNG LAM wrote:
Good afternoon, Venka-sensei
The script needed a few adjustments, but I managed to run the Machine
Learning using PyGILE-Plus environment. The XGBoost model is taking some time to run and should finish this evening.
I would like to address two points:
The Docker image from Docker Hub uses Python 3.10.3, but Python 3.13 has
better support for ML training and can save more time running boosting models like XGBoost.
When I tried building a local Docker image using "Dockerfile" with newer
Python versions, QGIS libraries caused conflicts (they currently only work with Python ≤3.9).
Currently, my solution is to adjust the hyperparameter tuning in XGBoost
to better match the size of my dataset to reduce the time it takes to run the XGBoost model.
I will keep you updated as soon as I have new results.
Thank you very much.
Best regards, Tran Tung Lam
From: Venkatesh Raghavan via PyGILE pygile@geoinfo-lab.org Sent: Wednesday, August 20, 2025 11:54 AM To: Bhuwan Awasthi st125724@ait.asia; ML for PyGILE Users and
Developers pygile@geoinfo-lab.org
Cc: Venkatesh Raghavan raghavan@omu.ac.jp Subject: [PyGILE] Re: simple example of json and python script pair
Bhuvan,
Thanks of uploading the json file.
Lam, what is the update about PyGILE testing with your landslide suceptibility code?
Venka
On 8/12/2025 9:51 PM, Bhuwan Awasthi wrote:
Respected Professor,
Apologies for the delay. I have uploaded the respective .JSON in the notebooks folder. Thank you.
- Bhuwan
On Mon, Aug 11, 2025 at 1:04 PM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Hi Bhuvan,
Good morning!
Good work!
Maybe we could upload the output watershed_analysis.json file on github in the notebook folder.
Another way of using the json file would be edit in a text editor and run the python code.
Best,
Venka
On 8/10/2025 7:29 PM, Bhuwan Awasthi wrote:
Respected Professor,
Thank you for your guidance on JSON and Python script pairs. The
approach
you suggested has been implemented for the example file as follows:
What is accomplished:
a) *All variables in JSON:* Input data paths, processing parameters,
tool
configurations, and visualization settings are stored in watershed_analysis.json rather than being hardcoded in the script.
A Notebook called "JSON Generator" where we can edit all the input parameters and run; then run the main python program that will take
all
input from the newly generated JSON file. Since, for jupyter, direct editing of JSON was not available.
b) *Comments included:* The JSON file includes clear descriptions of
the
parameters to make it user-friendly and self-explanatory.
c) *User-friendly editing: *Users can easily edit all settings (DEM
paths,
threshold values, tool paths, visualization parameters) by modifying
only
the JSON file.
d) *Minimal Python script changes: *The Python script reads the configuration from the JSON file and requires no user changes to work
with
different datasets or parameters.
e) *Same name convention:* Created the pair watershed_analysis.py and watershed_analysis.json as you suggested.
Implementation follows the above changes. Thank you!
- Bhuwan
On Fri, Aug 8, 2025 at 9:34 AM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Hi Bhuwan,
Good morning! Thanks for the update.
a) not only variable 'EPSG: 4326', but any variable (input data,
program
parameter etc.)
that the user would need to change can be defined in the json file
b) The json file could include comments to make it more
understandable
c) Using a) and b) above, it should be possible for user to edit the json file
to suit his/her needs.
d) with c) above, changing the python script could not be necessary
or
minimal.
e) You can try out a) to d) create/test a python script and a json
file
pair
(with the same name and different file extension) and see if it works
OK.
f) after you have done e), you can upload the python and json file
pair
to git hub.
Hope what I mention makes sense.
Best,
Venka
On 8/8/2025 2:00 AM, Bhuwan Awasthi wrote: > Respected Professor, > > Thank you for your very good advice. You are completely right with > everything: > a) EPSG:4326 stored in JSON: Done! > Instead of hardcoding them directly in the Python script, the string > variables 'EPSG: 4326' are now in the JSON (config) file. > > b) Avoid the redundant config_data dictionary: Done! The hardcoded
lines
> were unnecessary and are now removed, since the config_data is also
read
> from the JSON file. > > The JSON file is created if it does not yet exist (first start of
the
> software) > The configuration is always read from the JSON file > The redundant hardcoded dictionary is removed > > c) Naming is not matching: Done! The watershed_analysis.py will
always
> create and read the corresponding watershed_analysis.json, leading
to a
> perfectly logical relationship between Python file and JSON config. > > This in fact created a clean, professional, and maintainable
codebase
!!
> Thank you for these great tips that have strongly improved the code > structure. > > - Bhuwan > > On Thu, Aug 7, 2025 at 6:11 PM Venkatesh Raghavan via PyGILE < > pygile@geoinfo-lab.org> wrote: > >> Bhuvan, >> >> a) Even variables like 'EPSG:4326' can be defined in the json file >> >> b) are the lines below necessary in yje Python script? >> >> config_data = { >> "dem_path":
"/workspace/Road_Induced_Solu/Solu_Dem/Solu.tif",
>> "temp_dir": "temp_watershed", >> "output_dir": "results", >> "watershed_dem": "results/clipped_dem.tif", >> "conda_env_path": "/opt/conda/envs/pygile", >> "saga_cmd": "/opt/saga/bin/saga_cmd", >> "saga_lib": "/opt/saga/lib/saga", >> "grass_bin": "/opt/grass/grass84/bin", >> "otb_bin": "/opt/otb/bin", >> "whitebox_tools":
"/opt/conda/envs/pygile/bin/whitebox_tools"
>> } >> >> I think the data is being read from the json file. >> >> c) each python script will read parameters from json file, so it
is
better >> if the python file and json file share the same name. >> >> >> Venka >> >> >> On 8/7/2025 7:29 PM, Bhuwan Awasthi wrote: >>> Respected Professor, >>> >>> As per your instructions, the updated example has been pushed to
the
>> GITHUB >>> repository of PyGILE-Plus. This looks more convenient to work
with.
Thank >>> you for pointing it out. >>> >>> - Bhuwan >>> >>> On Thu, Aug 7, 2025 at 2:02 PM Venkatesh Raghavan via PyGILE < >>> pygile@geoinfo-lab.org> wrote: >>> >>>> Here's a simple example of json and python script pair. >>>> >>>> The python script will read input and output variables from >>>> >>>> json file and execute. No need to hardcode (or edit python
script)
>>>> >>>> and you can run the script on different data by editing json
file.
>>>> >>>> Venka >>>> _______________________________________________ >>>> PyGILE mailing list -- pygile@geoinfo-lab.org >>>> To unsubscribe send an email to pygile-leave@geoinfo-lab.org >>>> >> _______________________________________________ >> PyGILE mailing list -- pygile@geoinfo-lab.org >> To unsubscribe send an email to pygile-leave@geoinfo-lab.org >> _______________________________________________ PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
Hi Bhuvan,
Take your time. Try ti add threejs when you create a new docker.
Venka
On 8/24/2025 5:35 PM, Bhuwan Awasthi wrote:
Respected Professor,
I hope you are doing well. I agree with you that most of the QGIS fundamentals are already included in other libraries. Removing it would reduce the container size as well. We would be losing the processing framework but we can directly call the tools. I will work on integrating this new architecture. However, since it involves replacing all the existing files including the notebooks, I will require some processing time to complete it.
Thank you.
On Sat, Aug 23, 2025 at 1:26 PM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Lam-san,
Thanks for the update.
Most of the processing tools in QGIS are derived from GDAL, Saga, GRASS and OTB.
So, I am wondering if we need to keep QGIS in PyGILE-Plus.
QGIS 3.44.2 still uses Python 3.9, I think and I don't see QGIS supporting Python 3.13 any
time soon.
Bhuvan, let me know you thoughts on the above.
Best,
Venka
On 8/20/2025 4:03 PM, TRAN TUNG LAM wrote:
Good afternoon, Venka-sensei
The script needed a few adjustments, but I managed to run the Machine
Learning using PyGILE-Plus environment. The XGBoost model is taking some time to run and should finish this evening.
I would like to address two points:
*
The Docker image from Docker Hub uses Python 3.10.3, but Python 3.13 has
better support for ML training and can save more time running boosting models like XGBoost.
*
When I tried building a local Docker image using "Dockerfile" with newer
Python versions, QGIS libraries caused conflicts (they currently only work with Python ≤3.9).
Currently, my solution is to adjust the hyperparameter tuning in XGBoost
to better match the size of my dataset to reduce the time it takes to run the XGBoost model.
I will keep you updated as soon as I have new results.
Thank you very much.
Best regards, Tran Tung Lam
From: Venkatesh Raghavan via PyGILE pygile@geoinfo-lab.org Sent: Wednesday, August 20, 2025 11:54 AM To: Bhuwan Awasthi st125724@ait.asia; ML for PyGILE Users and
Developers pygile@geoinfo-lab.org
Cc: Venkatesh Raghavan raghavan@omu.ac.jp Subject: [PyGILE] Re: simple example of json and python script pair
Bhuvan,
Thanks of uploading the json file.
Lam, what is the update about PyGILE testing with your landslide suceptibility code?
Venka
On 8/12/2025 9:51 PM, Bhuwan Awasthi wrote:
Respected Professor,
Apologies for the delay. I have uploaded the respective .JSON in the notebooks folder. Thank you.
- Bhuwan
On Mon, Aug 11, 2025 at 1:04 PM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
Hi Bhuvan,
Good morning!
Good work!
Maybe we could upload the output watershed_analysis.json file on github in the notebook folder.
Another way of using the json file would be edit in a text editor and run the python code.
Best,
Venka
On 8/10/2025 7:29 PM, Bhuwan Awasthi wrote:
Respected Professor,
Thank you for your guidance on JSON and Python script pairs. The
approach
you suggested has been implemented for the example file as follows:
What is accomplished:
a) *All variables in JSON:* Input data paths, processing parameters,
tool
configurations, and visualization settings are stored in watershed_analysis.json rather than being hardcoded in the script.
A Notebook called "JSON Generator" where we can edit all the input parameters and run; then run the main python program that will take
all
input from the newly generated JSON file. Since, for jupyter, direct editing of JSON was not available.
b) *Comments included:* The JSON file includes clear descriptions of
the
parameters to make it user-friendly and self-explanatory.
c) *User-friendly editing: *Users can easily edit all settings (DEM
paths,
threshold values, tool paths, visualization parameters) by modifying
only
the JSON file.
d) *Minimal Python script changes: *The Python script reads the configuration from the JSON file and requires no user changes to work
with
different datasets or parameters.
e) *Same name convention:* Created the pair watershed_analysis.py and watershed_analysis.json as you suggested.
Implementation follows the above changes. Thank you!
- Bhuwan
On Fri, Aug 8, 2025 at 9:34 AM Venkatesh Raghavan via PyGILE < pygile@geoinfo-lab.org> wrote:
> Hi Bhuwan, > > Good morning! Thanks for the update. > > a) not only variable 'EPSG: 4326', but any variable (input data,
program
> parameter etc.) > > that the user would need to change can be defined in the json file > > b) The json file could include comments to make it more
understandable
> c) Using a) and b) above, it should be possible for user to edit the > json file > > to suit his/her needs. > > d) with c) above, changing the python script could not be necessary
or
> minimal. > > e) You can try out a) to d) create/test a python script and a json
file
> pair > > (with the same name and different file extension) and see if it works
OK.
> f) after you have done e), you can upload the python and json file
pair
> to git hub. > > Hope what I mention makes sense. > > Best, > > Venka > > > On 8/8/2025 2:00 AM, Bhuwan Awasthi wrote: >> Respected Professor, >> >> Thank you for your very good advice. You are completely right with >> everything: >> a) EPSG:4326 stored in JSON: Done! >> Instead of hardcoding them directly in the Python script, the string >> variables 'EPSG: 4326' are now in the JSON (config) file. >> >> b) Avoid the redundant config_data dictionary: Done! The hardcoded
lines
>> were unnecessary and are now removed, since the config_data is also
read
>> from the JSON file. >> >> The JSON file is created if it does not yet exist (first start of
the
>> software) >> The configuration is always read from the JSON file >> The redundant hardcoded dictionary is removed >> >> c) Naming is not matching: Done! The watershed_analysis.py will
always
>> create and read the corresponding watershed_analysis.json, leading
to a
>> perfectly logical relationship between Python file and JSON config. >> >> This in fact created a clean, professional, and maintainable
codebase
!!
>> Thank you for these great tips that have strongly improved the code >> structure. >> >> - Bhuwan >> >> On Thu, Aug 7, 2025 at 6:11 PM Venkatesh Raghavan via PyGILE < >> pygile@geoinfo-lab.org> wrote: >> >>> Bhuvan, >>> >>> a) Even variables like 'EPSG:4326' can be defined in the json file >>> >>> b) are the lines below necessary in yje Python script? >>> >>> config_data = { >>> "dem_path":
"/workspace/Road_Induced_Solu/Solu_Dem/Solu.tif",
>>> "temp_dir": "temp_watershed", >>> "output_dir": "results", >>> "watershed_dem": "results/clipped_dem.tif", >>> "conda_env_path": "/opt/conda/envs/pygile", >>> "saga_cmd": "/opt/saga/bin/saga_cmd", >>> "saga_lib": "/opt/saga/lib/saga", >>> "grass_bin": "/opt/grass/grass84/bin", >>> "otb_bin": "/opt/otb/bin", >>> "whitebox_tools":
"/opt/conda/envs/pygile/bin/whitebox_tools"
>>> } >>> >>> I think the data is being read from the json file. >>> >>> c) each python script will read parameters from json file, so it
is
> better >>> if the python file and json file share the same name. >>> >>> >>> Venka >>> >>> >>> On 8/7/2025 7:29 PM, Bhuwan Awasthi wrote: >>>> Respected Professor, >>>> >>>> As per your instructions, the updated example has been pushed to
the
>>> GITHUB >>>> repository of PyGILE-Plus. This looks more convenient to work
with.
> Thank >>>> you for pointing it out. >>>> >>>> - Bhuwan >>>> >>>> On Thu, Aug 7, 2025 at 2:02 PM Venkatesh Raghavan via PyGILE < >>>> pygile@geoinfo-lab.org> wrote: >>>> >>>>> Here's a simple example of json and python script pair. >>>>> >>>>> The python script will read input and output variables from >>>>> >>>>> json file and execute. No need to hardcode (or edit python
script)
>>>>> and you can run the script on different data by editing json
file.
>>>>> Venka >>>>> _______________________________________________ >>>>> PyGILE mailing list -- pygile@geoinfo-lab.org >>>>> To unsubscribe send an email to pygile-leave@geoinfo-lab.org >>>>> >>> _______________________________________________ >>> PyGILE mailing list -- pygile@geoinfo-lab.org >>> To unsubscribe send an email to pygile-leave@geoinfo-lab.org >>> > _______________________________________________ > PyGILE mailing list -- pygile@geoinfo-lab.org > To unsubscribe send an email to pygile-leave@geoinfo-lab.org >
PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org
PyGILE mailing list -- pygile@geoinfo-lab.org To unsubscribe send an email to pygile-leave@geoinfo-lab.org