I want to read data from my OSM file at a specific time.
import osmium
import pandas
class TimelineHandler(osmium.SimpleHandler):
def __init__(self):
osmium.SimpleHandler.__init__(self)
self.elemtimeline = []
def relation(self, n):
self.elemtimeline.append(["relation",
n.id,
n.version,
n.visible,
pandas.Timestamp(n.timestamp),
n.uid,
n.changeset,
len(n.tags)])
tlhandler = TimelineHandler()
tlhandler.apply_file('/.../.../.../koeln-regbez-internal.osh.pbf')
colnames = ['type', 'id', 'version', 'visible', 'ts', 'uid', 'chgset', 'ntags']
elements = pandas.DataFrame(tlhandler.elemtimeline, columns=colnames)
elements = elements.sort_values(by=['type', 'id', 'ts'])
elements.head()
print(elements.head())
elements.to_csv("Köln-metropole.csv", date_format='%Y-%m-%d %H:%M:%S')
def updatedelem(data):
updata = data.groupby(['type', 'id'])['version'].max().reset_index()
return pandas.merge(updata, data, on=['id', 'version'])
uptodate_elem = updatedelem(elements)
uptodate_elem.head()
print(uptodate_elem.head())
elements.to_csv("Köln-metropole.csv", date_format='%Y-%m-%d %H:%M:%S')
**The code works until I enter the following function. Here is the problem. There are a lot of error messages displayed. Probably it is because something is wrong with "Date".
Warnings: Parameter 'date' value is not used AND Shadows name 'datedelems' from outer scope**
def datedelems(history, date):
datedelems = (history.query("ts <= @date")
.groupby(['type','id'])['version']
.max()
.reset_index())
return pandas.merge(datedelems, history, on=['type','id','version'])
oldelem = datedelems(elements, "2008-02-01")
oldelem.head()
I have deleted the variable date, changed the format of the date,...
Error:
Traceback (most recent call last):
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/arrays/datetimelike.py", line 582, in _validate_comparison_value
self._check_compatible_with(other)
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/arrays/datetimes.py", line 461, in _check_compatible_with
self._assert_tzawareness_compat(other)
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/arrays/datetimes.py", line 698, in _assert_tzawareness_compat
raise TypeError(
TypeError: Cannot compare tz-naive and tz-aware datetime-like objects
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/arrays/datetimelike.py", line 1054, in _cmp_method
other = self._validate_comparison_value(other)
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/arrays/datetimelike.py", line 585, in _validate_comparison_value
raise InvalidComparison(other) from err
pandas.core.arrays.datetimelike.InvalidComparison: 2008-02-01 00:00:00
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/.../PycharmProjects/pythonProject11/main.py", line 47, in <module>
oldelem = datedelems(elements, "2008-02-01")
File "/Users/.../PycharmProjects/pythonProject11/main.py", line 41, in datedelems
datedelems = (history.query("ts <= @date")
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/util/_decorators.py", line 331, in wrapper
return func(*args, **kwargs)
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/frame.py", line 4463, in query
res = self.eval(expr, **kwargs)
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/util/_decorators.py", line 331, in wrapper
return func(*args, **kwargs)
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/frame.py", line 4601, in eval
return _eval(expr, inplace=inplace, **kwargs)
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/computation/eval.py", line 353, in eval
parsed_expr = Expr(expr, engine=engine, parser=parser, env=env)
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/computation/expr.py", line 813, in __init__
self.terms = self.parse()
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/computation/expr.py", line 832, in parse
return self._visitor.visit(self.expr)
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/computation/expr.py", line 415, in visit
return visitor(node, **kwargs)
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/computation/expr.py", line 421, in visit_Module
return self.visit(expr, **kwargs)
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/computation/expr.py", line 415, in visit
return visitor(node, **kwargs)
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/computation/expr.py", line 424, in visit_Expr
return self.visit(node.value, **kwargs)
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/computation/expr.py", line 415, in visit
return visitor(node, **kwargs)
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/computation/expr.py", line 723, in visit_Compare
return self.visit(binop)
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/computation/expr.py", line 415, in visit
return visitor(node, **kwargs)
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/computation/expr.py", line 538, in visit_BinOp
return self._maybe_evaluate_binop(op, op_class, left, right)
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/computation/expr.py", line 520, in _maybe_evaluate_binop
return self._maybe_eval(res, self.binary_ops)
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/computation/expr.py", line 492, in _maybe_eval
return binop.evaluate(
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/computation/ops.py", line 427, in evaluate
res = self(env)
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/computation/ops.py", line 407, in __call__
return self.func(left, right)
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/ops/common.py", line 72, in new_method
return method(self, other)
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/arraylike.py", line 54, in __le__
return self._cmp_method(other, operator.le)
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/series.py", line 6243, in _cmp_method
res_values = ops.comparison_op(lvalues, rvalues, op)
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/ops/array_ops.py", line 273, in comparison_op
res_values = op(lvalues, rvalues)
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/ops/common.py", line 72, in new_method
return method(self, other)
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/arraylike.py", line 54, in __le__
return self._cmp_method(other, operator.le)
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/arrays/datetimelike.py", line 1056, in _cmp_method
return invalid_comparison(self, other, op)
File "/Users/.../PycharmProjects/pythonProject11/venv/lib/python3.10/site-packages/pandas/core/ops/invalid.py", line 36, in invalid_comparison
raise TypeError(f"Invalid comparison between dtype={left.dtype} and {typ}")
TypeError: Invalid comparison between dtype=datetime64[ns, UTC] and Timestamp
Process finished with exit code 1