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:
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