POST
|
We have some customers and partners still relying on the File Geodatabase API. Currently, they try to migrate or at least estimate the migration effort to the new .NET 6 long-term support version. Related Github issue Would love to receive some feedback from the maintainers.
... View more
01-03-2023
02:12 AM
|
2
|
2
|
802
|
POST
|
This is the UNIX timestamp/epoch in milliseconds. If you want to use the FeatureSet as a dataframe the easiest way is the spatially enabled dataframe. from arcgis import GIS
from arcgis.features import FeatureLayer, FeatureSet
from datetime import datetime
import json
import geopandas as gpd
gis = GIS()
url_2000 = 'https://services3.arcgis.com/T4QMspbfLg3qTGWY/arcgis/rest/services/Historic_Geomac_Perimeters_All_Years_2000_2018/FeatureServer/0'
layer_2000 = FeatureLayer(url_2000)
fset_2000 = layer_2000.query()
fset_2000.sdf The conversion from UTC timestamp to the datetime object is done under the hood. If you still want to use the GeoDataFrame from the geopandas module, you have to write your own conversion implementation. The to_geojson property of the FeatureSet is going to reconvert the datetime object back into an UTC timestamp. This seems a little bit awkward. The following function is converting the UTC timestamp into the ISO format string, because your code reloads the GeoJSON into a python object again. Furthermore, the to_geojson also encodes your strings into unicode escaped characters ('\uxxx') - I love our German Umlauts. I would suggest to stay away from the to_geojson approach. The following function directly converts the UTC timestamps into the ISO string format. def convert_timestamps(feature_set: FeatureSet, field_names, use_iso=True):
"""Converts timestamps (UNIX epoch in [ms]) into datetime objects by modifying the feature set directly."""
for feature in feature_set.features:
for attribute_name in feature.attributes:
if attribute_name in field_names:
if use_iso:
feature.attributes[attribute_name] = datetime.utcfromtimestamp(feature.attributes[attribute_name] * 1e-3).isoformat()
else:
feature.attributes[attribute_name] = datetime.utcfromtimestamp(feature.attributes[attribute_name] * 1e-3) So that, you just need to call it by using: convert_timestamps(fset_2000, ['perimeterdatetime'])
gjson_string_2000 = fset_2000.to_geojson
gjson_dict_2000 = json.loads(gjson_string_2000)
gdf_2000 = gpd.GeoDataFrame.from_features(gjson_dict_2000['features']) The geopandas dataframe contains the correct ISO string. You have to reconvert it into a datetime object, again. This is only needed because of the to_geojson property behavior. Hope it helps.
... View more
12-14-2022
06:21 AM
|
2
|
0
|
503
|
POST
|
ArcGIS Server instances being bundled into your dedicated ArcGIS Enterprise environment contain their own Python Runtime especially for executing your GP services. You do not need to install ArcGIS Pro on your ArcGIS Server machines, you just need to prepare and swap to your dedicated conda environment. This workflow is documented at: Deploying custom Python packages for ArcGIS Server—ArcGIS Server | Documentation for ArcGIS Enterprise.
... View more
11-22-2022
07:52 AM
|
0
|
1
|
462
|
POST
|
There is a need for a custom workflow, because the default browser cannot be used on some secured devices. So that, the Authentication Manager must be customized or maybe the authentication challenge handler must be implemented using the native device "auth controller". The only library we are aware of is AppAuth for iOS by openid supporting a custom authentication handler on top of "SFSafariViewController". Maybe we should give it a try... @NimeshJarecha
... View more
04-06-2022
08:16 AM
|
0
|
1
|
557
|
POST
|
ArcGIS Enterprise 10.9 allows an administrator to manage OpenID logins. One of our customer tries to implement an OpenID login by using the native login screen and a custom authentication handler for OpenID connect. We ran out of luck to find any ArcGIS Runtime sample using OpenID connect logins. Would you be so kind and tell us, if the AuthenticationManager supports OpenID connect, or how to implement a custom AuthenticationManager? Follow up: Your Ideas in ArcGIS Enterprise 10.9 - Esri Community arcgis-runtime-samples-ios/arcgis-ios-sdk-samples/Cloud and portal/Token authentication at main · Esri/arcgis-runtime-samples-ios (github.com)
... View more
04-04-2022
04:55 AM
|
0
|
3
|
605
|
POST
|
@CharlesMacleod do you know any workaround for accessing the "attribute table" from a Image Service Layer\Raster Layer with Metadata or is this not possible with the current Pro SDK? We only found ImageServiceLayer::GetRaster()::GetAttributeTable() returning a null reference, so far.
... View more
01-10-2022
04:41 AM
|
0
|
0
|
552
|
POST
|
@MatthiasSchenker showed me a sample using the TableControlContentFactory for populating the underlying table content (ProGuide TableControl · Esri/arcgis-pro-sdk Wiki (github.com)). The TableControlContentFactory works with the ImageServiceLayer as expectet. When we try to access the attribute table by calling ImageServiceLayer::GetRaster()::GetAttributeTable() we only get an uninitialized instance. So far, we ran out of luck again. if (layer is ImageServiceLayer imageServiceLayer)
{
await QueuedTask.Run(() =>
{
var raster = imageServiceLayer.GetRaster();
var table = raster.GetAttributeTable();
if (null != table)
{
using (var cursor = table.Search())
{
var fieldCount = -1;
while (cursor.MoveNext())
{
var currentRow = cursor.Current;
if (null != currentRow)
{
if (-1 == fieldCount)
{
fieldCount = currentRow.GetFields().Count;
}
for (var fieldIndex = 0; fieldIndex < fieldCount; fieldIndex++)
{
var value = currentRow[fieldIndex];
if (null != value)
{
}
}
}
}
}
}
});
}
... View more
11-10-2021
02:07 AM
|
0
|
1
|
644
|
POST
|
We need access for loading the records into our Smart Data Analyser in-memory custom smart table view. So that, any of our customers can easily select/filter/aggregate the underlying image tiles without using not so intuitive SQL statements. Our custom table view has the same behaviour like the attribute or any other record/feature selecting view. For a better understanding take a look at our product page Smart Data Analyser.
... View more
11-08-2021
08:19 AM
|
0
|
2
|
682
|
POST
|
We are trying to access the "metadata/catalog" tables from a ImageServiceLayer (e.g. https://landsat2.arcgis.com/arcgis/rest/services/Landsat/MS/ImageServer). The "Attribute Table" context menu entry opens the "metadata/catalog" tables from a ImageServiceLayer. We ran out of luck by trying to figure out how to access the underlying standalone table of the ImageServiceLayer. We only found a sample using a Mosaic Dataset and access the associated catalog table (ProConcepts Raster · Esri/arcgis-pro-sdk Wiki (github.com)) Is there any sample how to register a custom button by using a condition for ImageServiceLayer (e.g. "esri_mapping_onlyImageServiceLayersSelectedCondition") and access the underlying associated table of the ImageServiceLayer by using a simple row cursor? @CharlesMacleod
... View more
11-08-2021
02:33 AM
|
0
|
5
|
746
|
BLOG
|
@MarkCederholm very interesting shootout. In the past we analysed the memory consumption of the three runtimes. In our daily work, especially in disconnected environments, we always face memory intensive workflows. I created a medium post (GEOINT App: Using web maps as the spatial ground truth. ) regarding a simple use case, last year. The sample code is hosted on Github (GEOINT Monitor poc-viewer branch). For performance-critical workflows, we usually depend upon low-level libraries which integrate perfectly into the Qt (GPL/LGPL) ecosystem or are specified by system integrators. A recurring restriction is the use of the GEOS C/C++ (LGPL) libraries, especially in combination with PostGIS. I could easily outperform the Qt Opt1 scenario (Avg area = 21715 / Avg pts = 12 / Seconds elapsed: ~24) on my machine by using a thin wrapper around GEOS::GeometryFactory::createMultipoint and GEOS::Geometry::convexHull, ::getNumPoint, ::getArea (Avg area = 21715 / Avg pts = 12 / Seconds elapsed: ~5). We should keep in mind, that these libraries were designed for low-level geometry operations (the multipoint implementation is a kind of std::vector having points as coordinates as struct of two/three doubles) and avoid any copy-construction/copy-assignments in the first place. Because of the relatively low memory consumption and the easy integration of various low-level libraries, the ArcGIS Runtime for Qt is the way to go for most of our "Runtime Desktop" use cases. We should spend more time in doing some kind of stress and performance testing. Thanks for sharing and best Regards from Germany.
... View more
10-20-2021
05:27 AM
|
0
|
0
|
937
|
IDEA
|
@RexHansen thanks for your update, sounds promising. I created a "milestone" on our "location intelligence engineering board" to keep track of it. Location Intelligence Engineering MS-Q1 2022
... View more
09-30-2021
07:40 AM
|
0
|
0
|
1820
|
IDEA
|
@PhilipMeeks_CS we would prefer to stay with ArcGIS Runtime. We want to reuse our existing core libraries for mobile, desktop and web service development. Also, some of our system integrators ran into a bunch of serious licensing issues when combining various Open Source libraries in the past.
... View more
09-29-2021
08:10 AM
|
0
|
0
|
1826
|
IDEA
|
@RexHansen you mentioned that you are considering using some of the runtime libraries in a service/server context (Geospatial engine for spatial analytics). Is this still under consideration? We are facing a lot of integration issues when using the default author & publish approach with GP Tools and cascading web services (NTLM authentication with SSO using custom GP Services). All our use cases are connecting to custom data stores using web services with authentication/authorization and execute predefined geospatial workflows like buffering, spatial join, spatial aggregation and so on running in ArcGIS Enterprise. We are not able to reuse/delegate the authentication from our GP Service to the custom data store REST/GraphQL/gRPC endpoint. Right now, we have to use predefined "technical users", "system accounts" for accessing theses datastores. If we could use a geospatial engine running in our own web services, we would be able to directly authenticate against the custom datastore endpoint and do the geospatial processing without authenticating against and transferring the data back and forth to ArcGIS Enterprise using the Geometry Services.
... View more
09-29-2021
07:50 AM
|
0
|
0
|
1828
|
POST
|
Are there any best practices how to implement NTLM authentication with a GP Service so that, the valid user token using Single Sign On (SSO) with ArcGIS Enterprise is used for requesting another web service consumed by the Python tool being published as GP Service. Use Case: We are querying a custom graph database using NTLM authentication with Python (request-ntlm module) and transforming the entities and relations to features having relationships into a geodatabase on the fly. SSO works like a charm with ArcGIS Pro. But, when we publish the GP Tool as a GP Service, the service runs using the service account of the federated ArcGIS Server. The service needs to use the SSO token of the user which requested the GP Service call e.g. from any ArcGIS client. Is there any workflow how to reuse the SSO token using Python or at least to get the user info which requested the GP Service call? Any help would be fine.
... View more
08-20-2021
02:46 AM
|
0
|
0
|
728
|
POST
|
Very nice. We usually just upgrade existing projects and were not aware of this great enhancement. I just started to get my hands dirty and saw some linker warnings regarding the EsriRuntimeQtd.pdb not being linked with EsriRuntimeQtd.lib(LicenseResult.obj) and the other related *.obj's on Windows. But anyway, this CMake support helps us a lot and should make it to the official website. Otherwise we would not be able to deliver our DevOps release pipeline by integrating our CMake based vcpkg packages.
... View more
08-11-2021
05:49 AM
|
0
|
0
|
1218
|
Title | Kudos | Posted |
---|---|---|
1 | 03-13-2024 11:41 AM | |
1 | 03-13-2024 10:42 AM | |
1 | 03-13-2024 09:41 AM | |
1 | 03-13-2024 12:24 PM | |
2 | 03-07-2024 02:41 AM |
Online Status |
Offline
|
Date Last Visited |
yesterday
|