---
name: "osmium-changeset-filter"
section: "1"
platform: "linux"
package: "osmium-tool"
version: "1.18.0-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/osmium-changeset-filter"
---

# osmium-changeset-filter(1)

filter changesets from OSM changeset file

## NAME

osmium-changeset-filter - filter changesets from OSM changeset file

## SYNOPSIS

**osmium changeset-filter** \[*OPTIONS*\] *OSM-CHANGESET-FILE*

## DESCRIPTION

Copy the changesets matching all the given criteria to the output. Matching criteria are given through command line options.

This commands reads its input file only once and writes its output file in one go so it can be streamed, ie. it can read from STDIN and write to STDOUT.

## FILTER OPTIONS

- \-a, --after=TIMESTAMP

  Only copy changesets closed after the given time. This will always include all open changesets.

- \-b, --before=TIMESTAMP

  Only copy changesets created before the given time.

- \-B, --bbox=LONG1,LAT1,LONG2,LAT2

  Only copy changesets with a bounding box overlapping the specified box. The coordinates LONG1,LAT1 are from one arbitrary corner, the coordinates LONG2,LAT2 are from the opposite corner.

- \-c, --with-changes

  Only copy changesets with changes.

- \-C, --without-changes

  Only copy changesets without changes.

- \-d, --with-discussion

  Only copy changesets with discussions, ie changesets with at least one comment.

- \-D, --without-discussion

  Only copy changesets without discussions, ie changesets without any comments.

- \--open

  Only copy open changesets.

- \--closed

  Only copy closed changesets.

- \-u, --user=USER

  Only copy changesets by the given user name.

- \-U, --uid=UID

  Only copy changesets by the given user ID.

## COMMON OPTIONS

- \-h, --help

  Show usage help.

- \-v, --verbose

  Set verbose mode. The program will output information about what it is doing to STDERR.

- \--progress

  Show progress bar. Usually a progress bar is only displayed if STDOUT and STDERR are detected to be TTY. With this option a progress bar is always shown. Note that a progress bar will never be shown when reading from STDIN or a pipe.

- \--no-progress

  Do not show progress bar. Usually a progress bar is displayed if STDOUT and STDERR are detected to be a TTY. With this option the progress bar is suppressed. Note that a progress bar will never be shown when reading from STDIN or a pipe.

## INPUT OPTIONS

- \-F, --input-format=FORMAT

  The format of the input file(s). Can be used to set the input format if it can’t be autodetected from the file name(s). This will set the format for all input files, there is no way to set the format for some input files only. See [**osmium-file-formats**(5)](/osmium-file-formats/5.md) or the libosmium manual for details.

## OUTPUT OPTIONS

- \-f, --output-format=FORMAT

  The format of the output file. Can be used to set the output file format if it can’t be autodetected from the output file name. See [**osmium-file-formats**(5)](/osmium-file-formats/5.md) or the libosmium manual for details.

- \--fsync

  Call fsync after writing the output file to force flushing buffers to disk.

- \--generator=NAME

  The name and version of the program generating the output file. It will be added to the header of the output file. Default is “*osmium/*” and the version of osmium.

- \-o, --output=FILE

  Name of the output file. Default is \`-' (STDOUT).

- \-O, --overwrite

  Allow an existing output file to be overwritten. Normally **osmium** will refuse to write over an existing file.

- \--output-header=OPTION=VALUE

  Add output header option. This command line option can be used multiple times for different OPTIONs. See the *[osmium-output-headers(5)](/osmium-output-headers/5.md)* man page for a list of available header options. For some commands you can use the special format “OPTION!” (ie. an exclamation mark after the OPTION and no value set) to set the value to the same as in the input file.

## DIAGNOSTICS

**osmium changeset-filter** exits with exit code

- 0

  if everything went alright,

- 1

  if there was an error processing the data, or

- 2

  if there was a problem with the command line arguments.

## MEMORY USAGE

**osmium changeset-filter** does all its work on the fly and doesn’t keep much data in main memory.

## EXAMPLES

To see all changesets by user “foo”:

-

  ```
  osmium changeset-filter -u foo -f debug changesets.osm.bz2
  ```

To create an OPL file containing only open changesets:

-

  ```
  osmium changeset-filter --open -o open-changesets.opl.bz2 changesets.osm.bz2
  ```

## SEE ALSO

- •

  [**osmium**(1)](/osmium/1.md), [**osmium-file-formats**(5)](/osmium-file-formats/5.md), [**osmium-output-headers**(5)](/osmium-output-headers/5.md)

- •

  Osmium website ⟨https://osmcode.org/osmium-tool/⟩\\c

## COPYRIGHT

Copyright (C) 2013-2025 Jochen Topf \<jochen@topf.org\>.

License GPLv3+: GNU GPL version 3 or later \<https://gnu.org/licenses/gpl.html\>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

## CONTACT

If you have any questions or want to report a bug, please go to https://osmcode.org/contact.html

## AUTHORS

Jochen Topf \<jochen@topf.org\>.
