TypeError: not enough arguments for format string

What is the issue or question you have?

error message while running urban cooling models

What do you expect to happen?

no error

What have you tried so far?

starting to investigate myself, just hoping someone can give me a clue

Attach the logfile here:

04/16/2023 16:13:22 (pygeoprocessing.geoprocessing) geoprocessing.convolve_2d(3103) INFO need to normalize result so nodata values are not included
— Logging error —
Traceback (most recent call last):
File “C:\Users\dbocq\miniconda3\envs\dissertation_conda\lib\logging_init_.py”, line 1083, in emit
msg = self.format(record)
File “C:\Users\dbocq\miniconda3\envs\dissertation_conda\lib\logging_init_.py”, line 927, in format
return fmt.format(record)
File “C:\Users\dbocq\miniconda3\envs\dissertation_conda\lib\logging_init_.py”, line 663, in format
record.message = record.getMessage()
File “C:\Users\dbocq\miniconda3\envs\dissertation_conda\lib\logging_init_.py”, line 367, in getMessage
msg = msg % self.args
TypeError: not enough arguments for format string
Call stack:
File “C:\Users\dbocq\dissertation_conda\execute_invest_uc_and_ufrm.py”, line 87, in
natcap.invest.urban_cooling_model.execute(args_uc)
File “C:\Users\dbocq\miniconda3\envs\dissertation_conda\lib\site-packages\natcap\invest\urban_cooling_model.py”, line 519, in execute
cc_park_task = task_graph.add_task(
File “C:\Users\dbocq\miniconda3\envs\dissertation_conda\lib\site-packages\taskgraph\Task.py”, line 674, in add_task
new_task._call()
File “C:\Users\dbocq\miniconda3\envs\dissertation_conda\lib\site-packages\taskgraph\Task.py”, line 1093, in _call
payload = self._func(*self._args, **self.kwargs)
File “C:\Users\dbocq\miniconda3\envs\dissertation_conda\lib\site-packages\natcap\invest\urban_cooling_model.py”, line 1502, in convolve_2d_by_exponential
pygeoprocessing.convolve_2d(
File “C:\Users\dbocq\miniconda3\envs\dissertation_conda\lib\site-packages\pygeoprocessing\geoprocessing.py”, line 3131, in convolve_2d
timed_logger.info(
File "C:\Users\dbocq\miniconda3\envs\dissertation_conda\lib\logging_init
.py", line 1806, in info
self.log(INFO, msg, *args, **kwargs)
File “C:\Users\dbocq\miniconda3\envs\dissertation_conda\lib\site-packages\pygeoprocessing\geoprocessing.py”, line 155, in log
self.logger.log(level, msg, *args, **kwargs)
Message: ‘convolution nodata normalizer approximately %.1f%% complete on %s’
Arguments: (0.23189488865959829,)
04/16/2023 16:13:27 (pygeoprocessing.geoprocessing) geoprocessing.convolve_2d(3139) INFO convolution nodata normalize 100.0% complete on cc_park_002_ALL_DTLA_FITTED_FORESTS_SIMPLE.tif

the model continues to run after this message

but then it ultimately fails with

04/16/2023 17:46:13 (pygeoprocessing.geoprocessing) geoprocessing.convolve_2d(3139) INFO convolution nodata normalize 100.0% complete on T_air_002_ALL_DTLA_FITTED_FORESTS_SIMPLE.tif
04/16/2023 17:46:17 (taskgraph.Task) Task.add_task(706) ERROR Something went wrong when adding task reproject and label aoi (13), terminating taskgraph.
Traceback (most recent call last):
File “C:\Users\dbocq\miniconda3\envs\dissertation_conda\lib\site-packages\taskgraph\Task.py”, line 674, in add_task
new_task._call()
File “C:\Users\dbocq\miniconda3\envs\dissertation_conda\lib\site-packages\taskgraph\Task.py”, line 1093, in _call
payload = self._func(*self._args, **self._kwargs)
File “C:\Users\dbocq\miniconda3\envs\dissertation_conda\lib\site-packages\pygeoprocessing\geoprocessing.py”, line 1985, in reproject_vector
layer = base_vector.GetLayer(layer_id)
AttributeError: ‘NoneType’ object has no attribute ‘GetLayer’
Traceback (most recent call last):
File “C:\Users\dbocq\dissertation_conda\execute_invest_uc_and_ufrm.py”, line 87, in
natcap.invest.urban_cooling_model.execute(args_uc)
File “C:\Users\dbocq\miniconda3\envs\dissertation_conda\lib\site-packages\natcap\invest\urban_cooling_model.py”, line 664, in execute
intermediate_uhi_result_vector_task = task_graph.add_task(
File “C:\Users\dbocq\miniconda3\envs\dissertation_conda\lib\site-packages\taskgraph\Task.py”, line 674, in add_task
new_task._call()
File “C:\Users\dbocq\miniconda3\envs\dissertation_conda\lib\site-packages\taskgraph\Task.py”, line 1093, in _call
payload = self._func(*self._args, **self._kwargs)
File “C:\Users\dbocq\miniconda3\envs\dissertation_conda\lib\site-packages\pygeoprocessing\geoprocessing.py”, line 1985, in reproject_vector
layer = base_vector.GetLayer(layer_id)
AttributeError: ‘NoneType’ object has no attribute ‘GetLayer’

Process finished with exit code 1

@southplainfield,
It looks like the model is not able to open your AOI vector. Most likely you entered the wrong path, or the file is corrupted or not a valid vector file.

The TypeError: not enough arguments for format string error is unrelated and you can ignore it.

yep. user stupidity to blame. thanks for taking the time to answer.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.