File size: 2,545 Bytes
1d4cac8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
{
  "model_name": "DOFA",
  "model_type": "dofa",
  "architectures": [
    "DOFA"
  ],
  "framework": "PyTorch",
  "domain": "earth-observation",
  "task": "multisensor-masked-image-modeling",
  "implementation": {
    "entry_point": "model/dofa.py",
    "scope": "wavelength-conditioned dynamic patch embedding and reconstruction for variable-channel Earth-observation imagery",
    "train_script": "scripts/train.py",
    "inference_script": "scripts/inference.py",
    "evaluation_script": "scripts/result.py",
    "synthetic_data_script": "scripts/fake_data.py"
  },
  "architecture": {
    "family": "wavelength-conditioned masked autoencoder",
    "image_size": 224,
    "patch_size": 16,
    "num_patches": 196,
    "embed_dim": 32,
    "encoder_depth": 1,
    "encoder_heads": 4,
    "decoder_dim": 24,
    "decoder_depth": 1,
    "decoder_heads": 4,
    "wavelength_embed_dim": 16,
    "hypernetwork_heads": 4,
    "mask_ratio": 0.75,
    "dynamic_components": [
      "encoder patch weights",
      "encoder patch bias",
      "decoder reconstruction weights",
      "decoder reconstruction bias"
    ]
  },
  "data": {
    "datasets": [
      "Sentinel-1",
      "Sentinel-2",
      "NAIP",
      "EnMAP",
      "Gaofen"
    ],
    "protocol": "dofa_multisensor_npz_v1",
    "format": "NPZ",
    "image_key": "images",
    "image_shape": [
      "N",
      "C",
      224,
      224
    ],
    "wavelength_key": "wavelengths",
    "wavelength_shape": [
      "C"
    ],
    "required_metadata": [
      "modality",
      "protocol"
    ],
    "provenance_and_metric_metadata": [
      "data_source",
      "data_range",
      "wavelength_mode"
    ],
    "modalities": {
      "sentinel1": {
        "channels": 2,
        "wavelengths": [3.5, 4.0]
      },
      "sentinel2": {
        "channels": 9,
        "wavelengths": [0.443, 0.49, 0.56, 0.665, 0.705, 0.74, 0.783, 0.842, 1.61]
      },
      "naip": {
        "channels": 3,
        "wavelengths": [0.49, 0.56, 0.665]
      },
      "gaofen": {
        "channels": 4,
        "wavelengths": [0.49, 0.56, 0.665, 0.83]
      },
      "enmap": {
        "channels": 202,
        "wavelength_mode": "synthetic_uniform",
        "wavelength_start": 0.42,
        "wavelength_step": 0.006
      }
    },
    "default_data_range": 1.0,
    "default_file_pattern": "data/{split}_{modality}.npz"
  },
  "configuration_sources": [
    "conf/config.yaml",
    "model/dofa.py",
    "scripts/fake_data.py",
    "scripts/train.py",
    "scripts/inference.py",
    "scripts/result.py"
  ]
}