Changelog
Source:NEWS.md
idaifieldR 0.3.4 2023-12-17
- Make
get_field_index()
more efficient by utilizing vectors instead oflapply()
. - Adding liesWithinLayer in
get_field_index()
andsimplify_idaifield()
is now an option. This way, inget_field_index()
the “shortDescription” can be added without the more time intensive recursive layer search that comes with the now available optionfind_layers = TRUE
. For info on what this does, see documentation offind_layer()
. -
simplify_idaifield()
is now slightly faster as it usesfind_layer()
differently. -
find_layer()
can now handle a vector of multiple ids. - The
project
/projectname
-argument will be removed soon, and project needs to be specified inconnect_idaifield()
. Relevant functions currently issue a warning to that effect.
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
- Notify of new / different version on GitHub on attaching the package (
check_idaifieldr_version()
).
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
- add option to use or not use exact dates as min/max values for dating if present
- add
idf_json_query()
which lets users construct their own queries to the CouchDB-API - improve and export
find_layer()
- fix error in
get_language_lookup()
- fix bug in
idf_query()
-function where it would not get values from fields with possibility of multiple entries - remove config as attribute to save space
- rename
select_by()
toidf_select_by()
- rename
show_categories()
toidf_show_categories()
- update
idf_select_by()
andidf_show_categories()
- update vignettes
- update/enhanced documentation
- add a sticker
idaifieldR 0.3.1 2023-04-02
- of course, I missed half of it.
- fix
idf_query()
/idf_index_query()
: rename “type” to “category” in resource lists - type column in
idaifield_as_matrix()
- fix renaming of type/category in
simplify_idaifield()
- fix missed type/category issue
convert_to_onehot()
- “solve” minor problem with spreading checkbox fields (#TODO)
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
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, thussimplify_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()
andidf_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()
andcheck_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()
, andfix_relations()
(a lot) - split up import with
get_idaifield_docs()
and processing to be more usable withsimplify_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()
usinglapply()
- 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.