Как добавить свойства в файл topojson?

Учитывая файл data.tsv, такой:

id code name 1 AL Alabama 2 AK Alaska 4 AZ Arizona 5 AR Arkansas 6 CA California ... ... ... 

Учитывая файл topojson.json, такой: (структура правильная, числовые значения являются случайными)

 { "type":"Topology", "transform": { "scale": [0.0015484881821515486,0.0010301030103010299], "translate":[-5.491666666666662,41.008333333333354] }, "objects": { "states": { "type":"GeometryCollection", "geometries": [ {"type":"Polygon","arcs":[[0]],"properties":{"code_2":"AL"}}, {"type":"Polygon","arcs":[[1]],"properties":{"code_2":"AK"}} ] } }, "arcs": [ [[2466,9916],[-25,-5],[3,-13]], [[2357,9852],[1,-2],[1,-2]] ] } 

Как использовать общие поля (1) для ввода значений другого поля (2) в json-файл?

1]: data.txt#code и topojson.txt.objects.states.geometries.properties.code_2

2]: data.txt#name

Конечный результат должен содержать:

  {"type":"Polygon","arcs":[[0]],"properties":{"code_2":"AL", "name":"Alabama" }}, {"type":"Polygon","arcs":[[1]],"properties":{"code_2":"AK", "name":"Alaska" }}, 

EDIT: Принятый ответ:

 topojson -o final.json -e data.tsv --id-property=code_2,code -p code_2,state=name -- topojson.json 

    Попробуйте использовать это:

     topojson -o final.json -e data.tsv --id-property=code_2,code -p code_2,state=name -- topojson.json 

    Который должен выводить:

     { "type": "Topology", "transform": { "scale": [ 0.000016880209206372492, 0.000007005401010148724 ], "translate": [ -1.8418800213354616, 51.15278777877789 ] }, "objects": { "states": { "type": "GeometryCollection", "geometries": [ { "type": "Polygon", "arcs": [ [ 0 ] ], "id": "AK", "properties": { "code_2": "AK", "state": "Alaska" } } ] } }, "arcs": [ [ [ 0, 588 ], [ 92, -294 ], [ 91, -294 ], [ -183, 588 ] ] ] } 

    Из справочной системы командной строки wiki :

    –ID-свойство имени свойства свойства для продвижения к идентификатору геометрии

    Используя свойство code_2 с этим параметром, вы рекламируете его как идентификатор функции.

    Подготовьте a + перед именем свойства ввода, чтобы увеличить его значение до числа.

    Плюс:

    Если свойства, на которые ссылается -id-property, являются нулевыми или неопределенными, они исключаются из объекта геометрии вывода. Таким образом, сгенерированные объекты могут не иметь определенного идентификатора, если входные функции не имеют свойства с указанным именем.

    Итак, когда вы используете +code и +code_2 , они, вероятно, undefined , так как вы не можете преобразовать значение строки AK в число.

    Здесь входное свойство «FIPS» принуждается к числу и используется как идентификатор функции; Аналогично, столбец с именем «FIPS» используется как идентификатор в файле CSV. (Если ваш CSV-файл использует другое имя столбца для идентификатора функции, вы можете указать несколько свойств id, таких как --id-property=+FIPS,+id .)

    Вот почему вам нужно добавить code в --id-property=code_2,code . Так производится сопоставление ( code_2 из topojson.json и столбец code из data.tsv ).

    Затем выходное свойство «безработица» генерируется из внешнего файла данных, безработица.tsv, который определяет входное свойство «rate»,

    В нашем случае -p code_2,state=name указывает, что мы code_2 свойство code_2 и мы переименуем свойство name в state . Разделы свойств и внешних свойств в вышеупомянутой документации wiki довольно информативны по этому вопросу.

    Давайте будем гением компьютера.