Esri field type mapping

Infers Esri field types from R objects.

Usage

infer_esri_type(
  .data,
  arg = rlang::caller_arg(.data),
  call = rlang::caller_env()
)

get_ptype(field_type, n = 1, call = rlang::caller_env())

ptype_tbl(fields, n = 0, call = rlang::caller_env())

remote_ptype_tbl(fields, call = rlang::caller_env())

Arguments

.data

an object of class data.frame.

arg

An argument name in the current function.

call

The execution environment of a currently running function, e.g. call = caller_env(). The corresponding function call is retrieved and mentioned in error messages as the source of the error.

You only need to supply call when throwing a condition from a helper function which wouldn't be relevant to mention in the message.

Can also be NULL or a defused function call to respectively not display any call or hard-code a code to display.

For more information about error calls, see Including function calls in error messages.

field_type

a character of a desired Esri field type. See details for more.

n

the number of rows to create in the prototype table

fields

a data.frame containing, at least, the columns type and name. Typically retrieved from the field metadata from a FeatureLayer or Table. Also can use the output of infer_esri_type().

Value

  • get_pytpe() returns an object of the class of the prototype.

  • ptype_tbl() takes a data.frame with columns name and type and creates an empty data.frame with the corresponding columns and R types

  • remote_ptype_tbl() provides the results of ptype_tbl() as a lazy data frame from the dbplyr package.

  • infer_esri_ptype() returns a data.frame with columns name, type, alias, nullable, and editable columns

    • This resembles that of the fields returned by a FeatureService

Details

  • get_ptype() takes a scalar character containing the Esri field type and returns a prototype of the pertinent R type

  • infer_esri_type() takes a data frame-like object and infers the Esri field type from it.

  • remote_ptype_tbl() takes a data frame of fields as derived from list_fields() and creates a lazy table proto type intended to be used with dbplyr integration

Field type mapping:

Esri field types are mapped as

  • esriFieldTypeSmallInteger: integer

  • esriFieldTypeSingle: double

  • esriFieldTypeGUID: integer

  • esriFieldTypeOID: integer

  • esriFieldTypeInteger: integer

  • esriFieldTypeBigInteger: double

  • esriFieldTypeDouble: double

  • esriFieldTypeString: character

  • esriFieldTypeDate: date

R types are mapped as

  • double: esriFieldTypeDouble

  • integer: esriFieldTypeInteger

  • character: esriFieldTypeString

  • date: esriFieldTypeDate

  • raw: esriFieldTypeBlob

Examples


get_ptype("esriFieldTypeDouble")
#> [1] 0
inferred <- infer_esri_type(iris)
ptype_tbl(inferred)
#> [1] Sepal.Length Sepal.Width  Petal.Length Petal.Width  Species     
#> <0 rows> (or 0-length row.names)

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.

You can no longer sign into this site. Go to your ArcGIS portal or the ArcGIS Location Platform dashboard to perform management tasks.

Your ArcGIS portal

Create, manage, and access API keys and OAuth 2.0 developer credentials, hosted layers, and data services.

Your ArcGIS Location Platform dashboard

Manage billing, monitor service usage, and access additional resources.

Learn more about these changes in the What's new in Esri Developers June 2024 blog post.

Close