0

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
Mustermax
  • 1
  • 1

0 Answers0