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

darp2

v2.0.0

Published

Create a new dat based on the data in another dat.

Downloads

7

Readme

darp² (Distributed Automated Remote Processing Pipeline)

Build Status

darp² is an experimental tool for distributed automated remote processing pipelines for point clouds to be used in conjunction with DAT. Its purpose is to allow processing of data, that is remotely stored in a distributed network without the need to create a local copy of the data first. Instead only necessary data is requested from its peers The data is streamed through a processing pipeline, that writes the result into a directory, that is immediately available as a Dat archive again.

darp² can be used as a CLI (Command Line Interface; aka. terminal) tool or as a Node.js library.

CLI usage

darp² is distributed using npm, the package manager for Node.js. Please install the latest version of Node.js from the official homepage.

To install darp² you then type the following command:

$ npm install darp2 --global

Once that succeeds the darp2 command should be available inside your terminal.

Options

$ darp2 --help

darp2 -i dat://... -g "**/*" -c "ls -lash \"\${DARP2_TEMP_FOLDER}\" > ls.out"

Options:
  --version          Show version number                                                   [boolean]
  --input, -i        Input DAT key                                               [string] [required]
  --run-script, -r   Script to run on the task.                                             [string]
  --cmd, -c          Command to run on after downloading the dat.                           [string]
  --work-folder, -w  Folder used for the output. Passed as `DARP2_WORK_FOLDER` and
                     `DARP2_UPLOAD_FOLDER` env variable to the cmd.                         [string]
  --temp-folder, -t  Folder used to download the dat. Passed as `DARP2_TEMP_FOLDER` and
                     `DARP2_DOWNLOAD_FOLDER` env variable to the cmd.                       [string]
  --nolog            Dont write the log file to the out dat.              [boolean] [default: false]
  --log-path         File to write the log into.              [string] [default: ".dat-through.log"]
  --glob, -g                                                              [string] [default: "**/*"]
  --glob-nobrace     Do not expand `{a,b}` and `{1..3}` brace sets.       [boolean] [default: false]
  --glob-noglobstar  Disable `**` matching against multiple folder names. [boolean] [default: false]
  --glob-dot         Allow patterns to match filenames starting with a period, even if
                     the pattern does not explicitly have a period in that spot.

                     Note that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot`
                     is set.                                              [boolean] [default: false]
  --glob-noext       Disable "extglob" style patterns like `+(a|b)`.      [boolean] [default: false]
  --glob-nocase      Perform a case-insensitive match.                    [boolean] [default: false]
  --glob-nonull      When a match is not found by `minimatch.match`, return a list containing
                     the pattern itself if this option is set.  When not set, an empty list
                     is returned if there are no matches.                 [boolean] [default: false]
  --glob-matchBase   If set, then patterns without slashes will be matched
                     against the basename of the path if it contains slashes.  For example,
                     `a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`.
                                                                          [boolean] [default: false]
  --glob-nocomment   Suppress the behavior of treating `#` at the start of a pattern as a
                     comment.                                             [boolean] [default: false]
  --glob-nonegate    Suppress the behavior of treating a leading `!` character as negation.
                                                                          [boolean] [default: false]
  --glob-flipNegate  Returns from negate expressions the same as if they were not negated. (Ie, true
                     on a hit, false on a miss.)                          [boolean] [default: false]
  --concurrency, -p  Specifies how many files and folders should be max. processed in parallel.
                                                                               [number] [default: 1]
  --help             Show help                                                             [boolean]

PDAL Example

This example shows how darp² can take a dat link and then run a processing pdal processing pipeline to pointcloud files and share the output of the processing pipeline with a new dat link:

$ darp2 \
  --input dat://74117a268a95438ceabcde6541dc9f5f00f5c21f192bd14f17258e5ca9ff194b \
  --cmd "pdal pipeline $(pwd)/processing_pipeline.json --readers.las.filename=\"\${DARP2_TEMP_FOLDER}/lidar_raleigh_nc_spm_height_feet.laz\""

This example specifies the input as the dat available under the dat://74117a..b link. The dat link should start with dat:// followed by the 64-character hex string.

It runs a pdal processing pipeline that is defined by the processing_pipeline.json file (You can download it here)

The output will generate a new dat link ready for sharing.

License

MIT License