Skip to contents

idaifieldR 0.4.0 2026-03-15

[!WARNING] This version introduces breaking changes. I tried, but I do not guarantee that the package will notify you of every change. Proceed with appropriate caution.

New Field Desktop API

  • idaifieldR now gets the configuration of a project from Field Desktop directly via the /config/ enpoint instead of the database document. That means that the complete configuration is now accessible.
    • parse_field_inputtypes() produces a data.frame of Categories, Parent Categories, input field identifiers and the corresponding inputType in the given Project Configuration.
    • NOTE: Subfields of composite fields are simply ignored.

Renewed simplify_idaifield()

simplify_idaifield() has been drastically changed. Some functionality which would have created data issues for users was removed (e.g. dimension-recalculation), which results in a less “simple” return list, but will keep the data intact. The function is now less verbose. All lists like campaign or processor or any checkbox-fields that can contain multiple values are returned as vectors instead of lists. Geometry will be parsed to JSON if kept. UUIDs are replaced during processing. Date fields and Dropdown Ranges are transformed to two values per field: .start and .end (see: handle_date_input() and handle_dropdownrange_input()). For Dropdown Ranges, start and end are the same of only the one value was set in Field Desktop.

Improvements:

Maintenance:

  • reworked connect_idaifield() (and affected):
    • ‘project’ parameter is now required.
    • ‘version’ and ‘user’ parameter removed.
    • ‘localhost’ new default for server.
    • And the deprecated ‘project’ / ‘projectname’ parameter in many other functions is now finally removed.
    • Substituted check for project parameter with structure check on connection parameter. If connect_idaifield() produced if, we just assume it’s correct.
  • Renamed get_uid_list() to make_index() (with notice, will still work for now).
  • Removed check_if_idaifield()
  • Removed download_language_list()
  • Removed reformat_geometry(): Instead, I recommend (and do) re-json-ify the Geometry and advise to use sf::st_read(json_string, quiet = TRUE) on each geometry elsewhere.
  • Removed get_language_lookup() and removed language support from simplify_idaifield() - it’s just too much.
  • Removed extract_field_names()
  • Removed get_field_inputtypes()
  • Reworked check_and_unnest() into maybe_unnest_docs().
  • Reworked find_layers() to require a vector of categories to search for as layer_categories instead of a global option.
  • Reorganized and reworked a lot of tests (thanks, Claude.ai).

Bug fixes:

Note

Many of the updates in this version have been developed using Claude.ai - though no pure “vibe-coding” was involved.

idaifieldR 0.3.6 2025-11-29

  • Quick and dirty fix to get around the default limit of 25 for the _find enpoint of PouchDB since Field Desktop v3.6.0

idaifieldR 0.3.5 2025-03-08

idaifieldR 0.3.4 2023-12-17

idaifieldR 0.3.3 2023-11-23

New features

  • Add idf_last_changed(connection, n = n): Returns a vector with the last n changed resources in the database.
  • Add idf_get_changes(connection, ids = c(...)): Returns a data.frame in which each change to one of the resources listed in ids (can be either their ‘identifier’ or ‘UUID’) corresponds to one row separated by creation or modification.
  • remove_config_names() issues a message about duplicate field or category names if it is appropriate. Functions may override data when multiple columns with the same name would otherwise exist, as e.g. ‘diameter’ and ‘projectName:diameter’. Attaches an attribute that lists the duplicate field/category names.

Minor changes

Fixes

  • Fix problem in reformat_geometry() (MultiPolygons have to be unnested before processing). (Imported Polygons may be formatted improperly, unnest if necessary (reformat_geometry()). Geometry is still a work in progress.)
  • Fix a bug in get_field_index(), where it would return an empty data.frame if there was no configuration-resource.

idaifieldR 0.3.2 2023-04-15

idaifieldR 0.3.1 2023-04-02

idaifieldR 0.3.0 2023-04-02

  • remove sofa as dependency and add custom interface with reduced functionality
  • restructure unnesting (unnest_docs() & find_resource())
  • add get_field_index() - getting the uidlist/index directly from the database
  • exchange type with category everywhere (Attention: This may very well break previous scripts)
  • speed up find_layer() significantly
  • check if project exists before attempting to query the database

Breaking changes:

  • “type” does not refer to the type of resource (Find, Layer, Place etc.) any more and is renamed to category, as this is the current structure of the database. The uidlist-column “type” is renamed to “category” along with any reference to this information anywhere else (I hope ;) ).

idaifieldR 0.2.4 2023-03-31

new:

  • handle / reformat dating fields by getting min and max date

fixes:

  • get type OR category if type is empty in for get_uid_list()
  • multiple queries for idf_query() with type & category
  • in simplify_idaifield(), category is currently switched to type, but this will be changed later -> #TODO: rename type everywhere to category to reflect actual db structure

idaifieldR 0.2.3 2023-03-16

  • add language management for multi-language input fields when project has more than one project language
  • add language list lookup preparation (get_language_lookup()) for custom config fields
  • add download_language_list() to get current translations from GitHub
  • add ping-checks for all database-related functions to supply custom error messages
  • get_idaifield_docs() will now remove the Configuration as a doc and attach it as attribute to all custom classes, thus simplify_idaifield() will use the config-attribute directly and works without a connection.
  • simplify_idaifield() now allows to keep checkbox-fields etc. as-is
  • change idf_query() and idf_index_query() to return docs instead of simplified list to allow choice
  • all idaifield_...-lists are now named (with the identifier of each resource)
  • new demodata for future use (data("idaifieldr_demodata"))
  • rewritten vignettes and generally updated documentation
  • Notice: The changes may have created problems for iDAI.field 2, and I did not test using the package with iDAI.field 2, as I assume it is not used anymore. get_idaifield_docs() should still work.

idaifieldR 0.2.2 2023-02-18

  • config specific names now removed everywhere
  • fixed problem with if-condition when config exists
  • fixed problem with the calculation of means for ranged measurements
  • comments in the code in some places
  • speed up find_layer(), replace_uid() and check_if_uid()
  • more tests

idaifieldR 0.2.1 2022-10-23

  • Fixed find_layer() (internal), seems to work as intended now.
  • With the editor for the project configuration in iDAI.field 3, new fields and objects started to be named according to their configurations, e.g. “milet:temperType” etc., if the fields have been newly created. From now on those config specific names are removed from all fields, so that only the part after the double dot remains (e.g. “milet:temperType” becomes “temperType”).
  • check_if_uid() now handles vectors
  • Speed up get_uid_list(), replace_uid(), convert_to_onehot(), and fix_relations() (a lot)
  • split up import with get_idaifield_docs() and processing to be more usable with simplify_idaifield(), with advice to use the latter only on subsets so the time is more manageable.
  • add check_and_unnest() to export

idaifieldR 0.2.0 2022-05-15

  • Version number changed to 0.2, to reflect the rather dramatic changes.
  • Faster get_uid_list() using lapply()
  • Added idf_query() to specifically query the db for groups without first downloading everything
  • Added idf_index_query() to specifically query the db for things that are only available in the uidlist (needs a uidlist to do that)
  • simplified = TRUE (simplify_idaifield()) will now convert checkbox field to multiple columns. I should probably make this an option in the future, but I need to clean up that function first (TODO).
  • make it possible to import the configuration file (needed for some new functions; will only work with idaifield3 and up, hopefully); connection and projectname are now attributes of the “idaifield_docs” and “idaifield_resources” objects.
  • idaifield_as_matrix() now returns a matrix with character values, not lists
  • Dimension lists will be imported as a single value - this is still stupid, actually, but I can’t currently think of a better way.
  • Two Vignettes: Demo.Rmd with essential workflow, about.Rmd explaining a bit more. Demo.Rmd updated to begin working on that.

I stated that I don’t intend any structural changes, but that - apparently - was impossible. Old scripts will not work without interference with the new version.

idaifieldR 0.1.4 2021-05-09

  • add version to connect_idaifield()-function since options have changed with the switch to Field Desktop (iDAI.field 3)
  • update documentation accordingly

idaifieldR 0.1.3 2021-12-07

  • Updated docs
  • Changes geometry reformatting to accommodate 3D-data (if not available, set to 0)

idaifieldR 0.1.1 2021-04-13

First release.

I will try to limit future changes so that they will not affect the structural outcome of the core functions as they are now.

TODOs: * Find a way to handle the remaining lists better, esp in combination with the non-list columns. * Try to assign column type automatically (numeric for numbers etc.) * How to deal with the dimension…-fields (measurements)? Currently ignored, can be flattened with dplyr and friends.

idaifieldR 0.1.0 2021-03-03

  • Added a NEWS.md file to track changes to the package.
  • Basic functions work but are not thoroughly tested