npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

osm-tag-stats

v1.2.5

Published

Filter OSM features, find stats and export GeoJSON using OSM QA Tiles

Downloads

10

Readme

osm-tag-stats - filter OSM features, find stats and export GeoJSON using OSM QA Tiles

osm-tag-stats uses OSM QA Tiles and TileReduce to filter OSM features and export them to GeoJSON. You can download planet tiles or use country extracts.

If you are using your own vector tiles, osm-tag-stats currently assumes osm as the tile layer.

Installation

Usage

  1. To write GeoJSON to a file: osm-tag-stats --mbtiles=<path-to-mbtiles> [options] --geojson=<output-geojson-file>
  2. To print the count of features to stdout: osm-tag-stats --mbtiles=<path-to-mbtiles> [options] --count

Path to --mbtiles and either of --geojson or --count is required.

Options

| Option | Description ---------|------- --mbtiles| path to mbtiles file --users | comma separated list of OSM usernames. You can pass mapbox for usernames of @mapbox/team-data. --filter | path to file containing tag filters. Filters are based on [Mapbox GL Style Filters]( Filters are written as specified in the Mapbox GL JS Filter Specification(https://www.mapbox.com/mapbox-gl-style-spec/#types-filter). --dates | comma separated UTC format start and end dates. If end date is not supplied, filters start date + 24 hours. --count | prints count of filtered features to stdout. --geojson | path to write geojson, overwrites existing file. --help | print usage instructions.

Examples

  • osm-tag-stats --geojson=highway_primary.geojson --mbtiles='../latest.planet.mbtiles' --filter='filter/highway_primary.json' --users='Mapbox'
The filtered geojson has been written to highway_primary.geojson
  • osm-tag-stats --geojson=highway_primary.geojson --count --mbtiles='../latest.planet.mbtiles' --filter='filter/highway_primary.json' --users='Mapbox'
Features total: 89186
The filtered geojson has been written to highway_primary.geojson

Filters

You can specify filters of varying levels of complexity using the Mapbox GL Style Filter Specification

  • A simple filter for building=yes could look like ["==", "building", "yes"]

  • A filter for building=yes, building:levels>1 and amenity=parking could look like

[
	"all",
	["==", "building", "yes"],
	["==", "parking", "amenity"],
	[">", "building:levels", 1]
]
  • A filter for a building with building:levels<=1 and no amenity=parking could look like
[
	"all",
	["==", "building", "yes"],
	[
		"none",
		["==", "parking", "amenity"],
		[">", "building:levels", 1]
	]
]
  • A filter for all highways - highway=* can look like
["has", "highway"]

Create a file with your filter specification and pass the path of this file to the --filter argument. There are some presets in the filter folder that you can use.