climate_indices
climate_indices copied to clipboard
LoweringError
I get LoweringError from the following code:
import pandas as pd
from climate_indices import indices
metadata = pd.read_csv("data/1012475.metadata")
station_id = metadata["Station"][0]
lat = metadata["Lat"][0]
awc = metadata["AWCmm"][0]
column_names = ["station_id", "year", "month", "day", "tmax", "tmin", "prcp"]
station_data = pd.read_csv("data/1012475.dat", header=None, names=column_names, delim_whitespace=True)
station_data["date"] = station_data[["year", "month", "day"]].apply(lambda s : pd.datetime(*s), axis = 1)
station_data.drop(columns=["year", "month", "day"], inplace=True)
station_data.set_index("date", inplace=True)
start_year = station_data.index[0].year
end_year = station_data.index[-1].year
tavg_daily = ((station_data["tmin"] + station_data["tmax"]) / 2)
tavg = tavg_daily.resample('1M').mean().values
prcp = station_data["prcp"].resample('1M').sum().values
pet = indices.pet(tavg, lat, start_year)
prcp = prcp * 0.0393701
pet = pet * 0.0393701
awc = awc * 0.0393701
scpdsi, pdsi, phdi, pmdi, zindex = indices.scpdsi(prcp, pet, awc, start_year, start_year, end_year)
Traceback
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/errors.py", line 717, in new_error_context yield
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/lowering.py", line 288, in lower_block self.lower_inst(inst)
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/pylowering.py", line 176, in lower_inst raise NotImplementedError(type(inst), inst)
NotImplementedError: (<class 'numba.ir.EnterWith'>, <numba.ir.EnterWith object at 0x7f64e823de80>)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/dispatcher.py", line 420, in _compile_for_args raise e
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/dispatcher.py", line 353, in _compile_for_args return self.compile(tuple(argtypes))
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/compiler_lock.py", line 32, in _acquire_compile_lock return func(*args, **kwargs)
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/dispatcher.py", line 768, in compile cres = self._compiler.compile(args, return_type)
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/dispatcher.py", line 77, in compile status, retval = self._compile_cached(args, return_type)
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/dispatcher.py", line 91, in _compile_cached retval = self._compile_core(args, return_type)
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/dispatcher.py", line 109, in _compile_core pipeline_class=self.pipeline_class)
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/compiler.py", line 551, in compile_extra return pipeline.compile_extra(func)
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/compiler.py", line 331, in compile_extra return self._compile_bytecode()
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/compiler.py", line 393, in _compile_bytecode return self._compile_core()
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/compiler.py", line 373, in _compile_core raise e
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/compiler.py", line 364, in _compile_core pm.run(self.state)
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/compiler_machinery.py", line 347, in run raise patched_exception
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/compiler_machinery.py", line 338, in run self._runPass(idx, pass_inst, state)
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/compiler_lock.py", line 32, in _acquire_compile_lock return func(*args, **kwargs)
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/compiler_machinery.py", line 302, in _runPass mutated |= check(pss.run_pass, internal_state)
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/compiler_machinery.py", line 275, in check mangled = func(compiler_state)
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/object_mode_passes.py", line 145, in run_pass lowered = backend_object_mode()
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/object_mode_passes.py", line 143, in backend_object_mode state.flags)
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/object_mode_passes.py", line 100, in _py_lowering_stage lower.lower()
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/lowering.py", line 195, in lower self.lower_normal_function(self.fndesc)
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/lowering.py", line 248, in lower_normal_function entry_block_tail = self.lower_function_body()
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/lowering.py", line 273, in lower_function_body self.lower_block(block)
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/lowering.py", line 288, in lower_block self.lower_inst(inst)
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/contextlib.py", line 130, in exit self.gen.throw(type, value, traceback)
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/errors.py", line 725, in new_error_context six.reraise(type(newerr), newerr, tb)
File "/home/pmburu/miniconda3/envs/indices_env/lib/python3.7/site-packages/numba/six.py", line 669, in reraise raise value
LoweringError: (<class 'numba.ir.EnterWith'>, <numba.ir.EnterWith object at 0x7f64e823de80>)
</details>
**Desktop:**
- OS: Linux Mint
- Version: 19.2 Tina
**Additional context**
`climate-indices==1.0.9`
Please provide me with the file 1012475.metadata
so I can reproduce the error and debug. This is an issue with numba. My assumption is that at a minimum you can bypass numba by setting NUMBA_DISABLE_JIT=1
to get you past this issue until a more suitable solution is worked out.
Thanks a lot for the quick response and solution. I'm testing the code using the data in https://github.com/monocongo/climate_indices/tree/master/notebooks/data
.
@samburu This appears to be remedied by removing the Numba just-in-time compilation decorator on the palmer._cafec_coefficients
function (line 428). Try commenting that out and running the code again to see if it works for you then.
@monocongo Thanks a ton commenting numba decorator for palmer._cafec_coefficients
works.
@monocongo what do you think of a new version of climate-indices==1.1.0
with numba decorator for palmer._cafec_coefficients
commented?
Yes, I agree, that numba decorator needs to be removed until we can work out how to use numba effectively for the palmer._cafec_coefficients
function.
Anything I can do to assist with release of new version of climate-indices
?
Sorry for the delay on this, @samburu. I hope to make a new release v1.0.10 to include this removed numba decorator and a few other minor changes in the next few days.