Observed since 20 Oct, 19:27 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
adfler
Advanced Drone Flight Log Entity Recognizer
ADFLER is an open-source tool developed to perform named entity recognition on drone flight log data to support forensic investigations. It uses a fine-tuned ALBERT model to identify entities (like Event and NonEvent) in log messages and constructs a forensic timeline.
C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe.sudo apt-get install wkhtmltopdf. Default path: /usr/bin/wkhtmltopdf.You can install ADFLER directly from PyPI (coming soon) or from source.
From Source:
git clone https://github.com/DroneNLP/ADFLER.git
cd ADFLER
pip install .
ADFLER uses a fine-tuned ALBERT model (swardiantara/ADFLER-albert-base-v2). By default, the tool will automatically download and cache the model from Hugging Face on its first run.
If you prefer to use a locally downloaded model or an offline environment, you can point to your local directory containing pytorch_model.bin using the --model argument.
ADFLER provides a Command Line Interface (CLI).
Structure:
adfler [arguments]
| Argument | Description |
|---|---|
--evidence <path> | Path to the directory containing input flight logs (must have android and/or ios subfolders). |
--output <path> | Path to the directory where results will be saved. |
--model <path> | Path to the directory containing the ALBERT model (pytorch_model.bin). |
--config <path> | Path to a custom config.json file. |
1. Run Pipeline (Recommended):
adfler --evidence "./flight_logs" --output "./results/case_001"
2. Run Pipeline with Custom Model:
adfler --evidence "./flight_logs" --output "./results/case_001" --model "./local_model_dir"
Running adfler will create the following structure in your output directory:
output_dir/
├── raw_list.json # List of detected log files
├── forensic_timeline.csv # Merged and sorted timeline of all logs
├── ner_result.json # Timeline with detected entities (JSON format)
├── statistics.json # Counts of detected entity types
├── forensic_report_.html # Intermediate HTML report
├── forensic_report_.pdf # Final PDF Forensic Report
└── parsed/ # Intermediate parsed CSVs
├── android/
└── ios/
You can optionally use a config.json file instead of passing long arguments.
Example config.json:
{
"source_evidence": "./flight_logs",
"output_dir": "./results/test_run",
"model_dir": "./model",
"wkhtml_path": {
"windows": "C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe",
"linux": "/usr/bin/wkhtmltopdf"
},
"use_cuda": true
}
Run with config:
adfler --config my_config.json
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
simpletransformersEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.7",
"evaluation": "NOT_EVALUATED"
} | simpletransformers>=0.63.6 | runtime |
seqevalEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.7",
"evaluation": "NOT_EVALUATED"
} | seqeval>=1.22.0 | runtime |
pandasEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.7",
"evaluation": "NOT_EVALUATED"
} | pandas | runtime |
numpyEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.7",
"evaluation": "NOT_EVALUATED"
} | numpy | runtime |
torchEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.7",
"evaluation": "NOT_EVALUATED"
} | torch | runtime |
tqdmEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.7",
"evaluation": "NOT_EVALUATED"
} | tqdm | runtime |
pdfkitEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.7",
"evaluation": "NOT_EVALUATED"
} | pdfkit | runtime |
requestsEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.7",
"evaluation": "NOT_EVALUATED"
} | requests | runtime |
bdist_wheel · 13.33 KB · Python py3
Observed since 20 Oct, 19:27 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:249c0dd9f76f07ee987e53a7c19f5ae2df68492cdabb67cd26c9a1b81a5fe73b