私はそれを使用しています草 - クリ(とともにインストール可能sudo npm install -g turf-cli
)は、一部の地理空間データを生成するために使用されます。turf-cli
包装紙ですturf.js ライブラリこれにより、コマンドラインでその機能を使用できます。次のスクリプトがあるとしましょう。
turf random points 1000 {} > geojsonFile.json
turf sample geojsonFile.json 2
この例では、最初の行は1000のランダムな点を含むGeoJSONを作成し、2行目はファイルの2つの機能を選択します。今まではそんなに良くなった。
まあ、私は最初の行のデータを保存するために一時ファイルを生成したくないし、2番目の行で使用できるように変数に保存したくありません。私が見つけた解決策xargs
は次のとおりです。
turf random points 1000 {} | jq -c '' | xargs -0 -I {} turf sample {} 2
このスクリプトも非常にうまく動作します。デフォルトでは、次の操作を行います。
turf
GeoJSON出力から1000個のランダムポイントを生成するために使用されます。jq
GeoJSON出力を1行に圧縮するために使用されます。xargs
2番目の実行のための引数と一緒に使用されますturf
(引数はturf
許可されていないためstdin
)。
これまでの私の例ではturf
。それがすべてがうまくいく理由です。ただし、以下を実行してランダムなポイントを10000に増やそうとすると:
turf random points 10000 {} | jq -c '' | xargs -0 -I {} turf sample {} 2
それは私にエラーを返します:
xargs: argument line too long
xargs
同様の問題を見たことがあります。これ解決策は| xargs -I {} -0 ...
...を使用することです。しかし、私はすでにこれらのパラメータを使用しており、私の場合は動作しません。パイプから巨大なGeoJSONを受信しても、その中で実行できるxargs
ように動作させる方法はありますか?turf