记录
表单与自定义字段
观察表单是可配置的:显示哪些字段、按什么顺序、放在哪个分段标题下,以及哪些字段是您自己添加的。在野外季开始前配置一次,调查中的每个人就会在每台设备上以相同的方式录入相同的数据。
The form builder
The form builder lists every field available for an entity, grouped into sections. Each field row shows its data type and has controls to set its column span, mark it required, hide it, or remove it from the form. The example below shows the built-in "Casual / incidental" observation form.

To reorder, tap Reorder and use the up and down arrows on each field or section. To add a grouping, tap Add section and give it a name. To hide a field, tap its eye control; to take it off the form, tap its remove control. Hiding or removing a field does not delete data already stored against it; the data stays in the database and still appears in exports. Bringing the field back makes it visible again.
添加自定义字段
The built-in fields cover the core observation attributes (taxon, date, position, count, confidence, notes and so on). When your protocol records something outside that set — a canopy cover score, a trap type, a microhabitat class — you add a custom field.

| 控件 | 作用 |
|---|---|
| 标题 | 在表单中显示给记录者的标签。录入数据的人看到的就是它。可以随时更改,不影响已存储的数据。 |
| 键 | The stable identifier used when the field appears in exports. Custom-field values are exported under this key inside the CustomFieldsJson column of Excel and Data Package exports. Choose it deliberately — your analysis scripts, R code or spreadsheet formulas will reference it by this name. Do not change it mid-season once data has been collected against it; changing the key produces a new empty key in exports and orphans the old data under the old name. |
| Data type | One of string, int, double, bool, date or lookup. A lookup field takes its options from a vocabulary name, a set code, or inline options JSON. The data type cannot be changed after the field is saved. |
| Section | The section of the form the field is placed in. New fields go into a section named "Custom" unless you type another name. |
| 必填 | Marks the field as required on the form. Required fields are shown with a star in the form builder; required fields that belong to the survey protocol are enforced when the record is saved. Use sparingly — a required field the recorder cannot always answer leads to records being abandoned rather than saved with the field empty. |
| 在列表中显示 | When on, the field is shown as a column in the Observations list by default. Every custom field can be added or removed from the list in the column picker; see Browsing your data. |
要向表单添加自定义字段:
- Open the form builder for the entity you want to modify.
- Tap Add custom field above the layout.
- 输入记录者将看到的标题。
- Enter the Key. Use lowercase with underscores and no spaces — for example
canopy_cover_pctortrap_type. This is the key your exports use. - Set the Data type.
- Leave Section as "Custom" or type the section the field belongs in.
- 根据需要设置必填和在列表中显示。
- 确认。该字段随即被添加到表单,并从此出现在导出中。
Key names and exports. The Key you choose here is the name your analysis tools will see. If you are sharing a project with other people, agree the key names before sharing the project setup file — a key entered differently on two devices produces two separate keys in a merged export.
哪些实体有表单
Each entity that holds recorded data has its own form: observations, survey visits and localities. Forms are configured independently — a custom field added to the observation form does not appear on the locality form. Open Menu → Protocols, open a protocol (clone a built-in first) and use the Entity type dropdown on the Form builder tab to switch between the three forms. To adjust the layout for one project only, tap Customize in the project's Survey protocol section.
结构化编辑器
Where a flat list of fields is not adequate, the app has a purpose-built editor that sits directly on the visit record:
- Vegetation relevé — a stand-level block (total cover, height, slope, aspect, cover per stratum) and a species × stratum cover-abundance matrix. It appears on the visit when the project uses one of the three vegetation protocols (Braun-Blanquet, % cover, Drude).
This is a fixed component tied to those protocols, not a field you configure in the form builder.
把配置迁移到其他设备
Form and protocol configuration is not stored as a global setting — it belongs to the project. To give every device on a survey the same forms, share the project setup file and import it on each device.
实际的工作流程是:
- Design the forms, add custom fields and assign a protocol on one device.
- Open Menu → Projects, open the project, and tap Share in the toolbar. The app writes a
.ecsurveyfile containing the project, its protocol, forms, custom fields, sites and vocabulary, and opens the share sheet. - Send the file to each team member — by Drive, e-mail, Bluetooth or cable.
- On each device, open the file, or open Menu → Projects and tap Import. Confirm the Import project setup dialog. The project appears with the same forms, fields and protocol.
After import, every device records against the same field layout, using the same keys, and produces exports that merge cleanly. If you need to change the form mid-season, repeat the process: update the configuration on one device, share a new .ecsurvey file, and import it again on every device.
Setup is separate from records. A .ecsurvey file carries configuration only. If the project already exists on the receiving device, its configuration is overwritten and its records are kept. To combine records collected on several devices, use Download from Drive + merge… (see Google Drive collaboration) or import a Frictionless Data Package with Import data package… on the export screen.
这在导出中如何体现
In Excel, Frictionless Data Package and the Google Drive CSVs, custom-field values are stored in one column per record, CustomFieldsJson, as a JSON object keyed by the Key you assigned. For example {"custom.canopy_cover_pct": 35}. Analysis scripts read the values from that column; the field definitions themselves are exported in mobile_fields_metadata.csv inside the data package.
Custom fields are not written to the spatial formats (GeoPackage, Shapefile, GeoJSON, KML, GPX, GML, MapInfo) or to the Darwin Core Archive and GBIF DwC-DP, which carry only the standard attributes. Use Excel or the Frictionless Data Package when you need the custom values.
The Key still matters more than the Caption after fieldwork: the Caption is for the person entering the data, the Key is what every script sees. See Export formats for a full description of each format.
语言
The app interface is translated into 19 languages; see Languages for the full list and how to switch. Protocol names and descriptions, and any captions you type yourself, are stored as written and are not translated.
If a multilingual team shares a project setup file, the custom field captions will appear in whichever language was used when they were created, on every device. Agree the caption language with your team before designing the form and sharing the setup file.