@osfarm/agroedei-edifact-daplos-reader
v1.0.10
Published
Parser pour fichiers Daplos (.dap) - Conversion vers JSON
Maintainers
Readme
Agroedei Edifact Daplos Reader
Un package NPM qui lit des fichiers Daplos (.dap) et les convertit en JSON.
Transformations
- Coordonnées GPS converties en Wgs84
- Dates converties en JSON
- Tous les codes reconnus sont complétés avec les libellés en français correspondants
Resources and specifications
- https://agroedieurope.fr/les-actions/un-cefact/
Installation
npm installUtilisation
Script de test
Convertir un fichier DAP en JSON :
node test-convert.js -i <fichier-entree.dap> -o <fichier-sortie.json>Exemple :
node test-convert.js -i "test/testdata/Gaec du Lunerotte.dap" -o "out/result.json"Utilisation programmatique
import { parseDapDocument, simplifyDapDocumentForExport, parseDaplosFile } from './parse.js';
import fs from 'fs';
// Méthode 1 : À partir d'un Buffer
const buffer = fs.readFileSync('fichier.dap');
const jsonData = parseDaplosFile(buffer);
console.log(jsonData);
// Méthode 2 : À partir d'une chaîne décodée
const decoder = new TextDecoder('windows-1252');
const content = decoder.decode(buffer);
const doc = parseDapDocument(content);
const jsonData = simplifyDapDocumentForExport(doc);
console.log(jsonData);Utilisation avec TypeScript
Le module inclut des définitions de types TypeScript pour une utilisation type-safe :
import { parseDaplosFile, AEE_CODES } from '@osfarm/agroedei-edifact-daplos-reader';
import type { SimplifiedDapDocument, Crop, Intervention } from '@osfarm/agroedei-edifact-daplos-reader';
import fs from 'fs';
// Parser un fichier DAP
const buffer = fs.readFileSync('fichier.dap');
const data: SimplifiedDapDocument = parseDaplosFile(buffer);
// Accès type-safe aux cultures
data.crops.forEach((crop: Crop) => {
console.log(`Culture: ${crop.crop_name_fr}`);
console.log(`Surface: ${crop.area_ha} ha`);
// Accès aux interventions
crop.interventions?.forEach((intervention: Intervention) => {
console.log(` ${intervention.date}: ${intervention.nature_label}`);
});
});
// Accès aux codes AEE
const inputNatures = AEE_CODES.input_nature;
console.log(inputNatures['ZIU']); // "Herbicide"Types disponibles :
SimplifiedDapDocument: Structure complète du document parséCrop: Informations sur une culture/parcelleIntervention: Opération agricole effectuéeInput: Intrant utilisé dans une interventionFieldPoint: Point GPS d'une parcelleCoordinate: Coordonnées [longitude, latitude] en WGS84
Format des fichiers DAP
Les fichiers DAP (Daplos) sont des fichiers texte à largeur fixe avec encodage Windows-1252 et fins de ligne CRLF.
Chaque ligne commence par une clé de 2 caractères, suivie de champs de largeur fixe concaténés sans séparateurs.
La définition des lignes se trouve dans dict/daplos_2.yml.
Structure du projet
parse.js: Module principal de parsingtest-convert.js: Script de test pour la conversiondict/: Fichiers de référence (cultures, unités, spécifications)test/testdata/: Fichiers d'exempleout/: Dossier de sortie pour les fichiers JSON générés
