|
POST
|
Please provide: ArcGIS version, Geodatabase version (if different) RDBMS with version, The "refresh" data source format, and Whether "using ArcCatalog" refers to just user interface tools, or includes Python or ArcObjects .Net and/or ArcObjects Java as well. What to include in a GeoNet question
... View more
10-27-2015
02:07 PM
|
0
|
2
|
2229
|
|
POST
|
There are quite a few ways to accomplish this, but some of them depend on version, database, and the "refresh" data source. Also involved: The number of features in the old featre class, The number of features in the feature class after update, The number of features which are actually different, Whether the feature class is versioned, Any potential foreign key relationshpis, Whether the feature class participates in a topology or parcel fabric,... or is replicated Whether "using ArcCatalog" refers to just user interface tools, or includes Python or ArcObjects .Net and/or ArcObjects Java as well. Please restate your question in light of these needed details - V
... View more
10-27-2015
01:12 PM
|
1
|
4
|
2229
|
|
POST
|
The file geodatabase data model only has two levels: simple tables or containers tables within containers You cannot place a feature dataset (or any other container) within a feature dataset (or any other container). This is why I test with OpenTable (which has the side effect of letting you access the field information). - V
... View more
10-27-2015
08:08 AM
|
0
|
2
|
1541
|
|
POST
|
Basically, a shapefile created in 10.2.x had a WBID column of type LONG with values from 1 to 50235. Let's be clear: Shapefiles do not support the concept of "long" or "short" types. All shapefiles can do is distinguish between numeric values with precision to the right of the decimal and those that don't. The mapping into types is done by ArcGIS. A "number with formatted width 5" is insufficient to determine whether it has a range of {-32768...32767} (a "short") or a range of {-9999...999999} (which would require a "long"). Attempting to encode "40432" into a short (16-bit) integer would result in numeric overflow. Thanks to the usual storage format ("twos complement"), I'd expect the overflowed value to be -25104 (40432 is 0x9DF0, which is interpreted as -32768 + 7664. Note that the values encoded into the shapefile aren't different (at least, upon read), they're just being interpreted differently. - V
... View more
10-26-2015
07:52 AM
|
1
|
0
|
6738
|
|
POST
|
Okay, here's an [updated] standalone example. The meat of the code is: /* .. Describe top level contents
*/
if ((hr = geodatabase.GetChildDatasets(parentPath,datasetType,children)) != S_OK) {
msg = L"GetChildDatasets failed";
ErrorInfo::GetErrorDescription(hr,errorText);
goto bailout;
}
/* .. List contents (or their children)
*/
count = children.size();
for (size_t i = 0; i < count; i++) {
/* .. Use "OpenTable" to distinguish between FDS and FC
*/
Table table;
if ((hr = geodatabase.OpenTable(children.at(i),table)) != S_OK) {
numFDS++;
std::vector<std::wstring> grands;
fprintf(stdout," %S:\n",children.at(i).c_str());
if ((hr = geodatabase.GetChildDatasets(children.at(i),datasetType,grands)) == S_OK) {
size_t kount = grands.size();
for (size_t j = 0; j < kount; j++) {
fprintf(stdout," %S\n",grands.at(j).c_str());
numFCs++;
} }
} else {
fprintf(stdout," %S\n",children.at(i).c_str());
numFCs++;
} } Using your dataset I get the folowing output: norge% ./fgdbList ./WS_Data.gdb "\"
\WSInfrastructure:
\WSInfrastructure\ww_Pump
\WSInfrastructure\sw_Casing
\WSInfrastructure\sw_Catchbasin
\WSInfrastructure\sw_CatchbasinLead
\WSInfrastructure\sw_CleanOut
\WSInfrastructure\sw_ControlValve
\WSInfrastructure\sw_Culvert
\WSInfrastructure\sw_Detention
\WSInfrastructure\sw_DischargePoint
\WSInfrastructure\sw_Fitting
\WSInfrastructure\sw_Inlet
\WSInfrastructure\sw_ManagementPond
\WSInfrastructure\sw_Manhole
\WSInfrastructure\sw_NetworkStructure
\WSInfrastructure\sw_OpenDrain
\WSInfrastructure\sw_StormwaterMain
\WSInfrastructure\sw_SystemValve
\WSInfrastructure\sw_VirtualDrainline
\WSInfrastructure\w_ConnectionPoint
\WSInfrastructure\w_CurbStop
\WSInfrastructure\w_FacilityFootprint
\WSInfrastructure\w_Flowmeter
\WSInfrastructure\w_Hydrant
\WSInfrastructure\w_Node
\WSInfrastructure\w_PressureDistrictExisting
\WSInfrastructure\w_PressureDistrictPlanned
\WSInfrastructure\w_ProductionWell
\WSInfrastructure\w_Pump
\WSInfrastructure\w_PumpingStation
\WSInfrastructure\w_SamplingStation
\WSInfrastructure\w_TreatmentPlant
\WSInfrastructure\w_UndergroundEnclosure
\WSInfrastructure\w_Valve
\WSInfrastructure\w_Watermain
\WSInfrastructure\w_WaterStorage
\WSInfrastructure\ww_ConnectionPoint
\WSInfrastructure\ww_EqualizationTank
\WSInfrastructure\ww_FacilityFootprint
\WSInfrastructure\ww_FlowControl
\WSInfrastructure\ww_Flowmeter
\WSInfrastructure\ww_Manhole
\WSInfrastructure\ww_PollutionControlPlant
\WSInfrastructure\ww_PumpingStation
\WSInfrastructure\ww_PumpYR
\WSInfrastructure\ww_Sewershed
\WSInfrastructure\ww_UndergroundEnclosure
\WSInfrastructure\ww_Valve
\WSInfrastructure\ww_WastewaterMain
\IlluminationWS
\AssumptionArea
FGDB Path = ./WS_Data.gdb
Containers = 1
Num FCs = 50
norge% ./fgdbList ./WS_Data.gdb "\" "Feature Class"
\IlluminationWS
\AssumptionArea
FGDB Path = ./WS_Data.gdb
Containers = 0
Num FCs = 2 If you want to describe the fields of each table, you've got a starting point (just make sure you capture both paths where numFCs is incremented). - V UPDATED with a new zipfile and new source name, without timing and with corrected counting 21:24 EDT
... View more
10-21-2015
01:46 PM
|
1
|
8
|
4352
|
|
POST
|
Here's the core of the code I whipped up (that is, unfortunately, failing on Linux): if ((hr = OpenGeodatabase(gdbPath,geodatabase)) != S_OK) { msg = L"Geodatabase not found"; goto bailout; } if ((hr = geodatabase.GetChildDatasets(parentPath,datasetType,children)) != S_OK) { msg = L"GetChildDatasets failed"; goto bailout; } You'd need to issue a second.GetChildDatasets on each of the first vector of children to pick up grandchildren. The "items" you want to extract are called "fields"; you can use Table::GetFieldInformation then FieldInfo getters. In fact, you could probably use GetFieldInformation to determine if you needed to drill deeper... If I get my code working I'll add it here. [Update: Important coding tip: backslashes don't need to be trapped when in quotes on Linux. The root parentPath is "\" (not "/" or ""), so a search on "\\" is correct in C++/C#, but should be "\" as a command line parameter] - V
... View more
10-21-2015
11:51 AM
|
0
|
0
|
4353
|
|
POST
|
If it were 'C', I'd have my solution posted already ("The impossible we do immediately, C++ takes a bit longer"). No need to delete, since it does form a check of the FGDBAPI solution. - V
... View more
10-21-2015
10:30 AM
|
1
|
0
|
4353
|
|
POST
|
To the best of my knowledge, it's the same ArcGIS product; the "for Home" really refers to licensing protocol. It violates the point of being untethered from the office, but if you've got VPN access to the work license server, I don't see why it wouldn't see it. - V
... View more
10-21-2015
10:25 AM
|
0
|
1
|
1237
|
|
POST
|
This is the File Geodatabase API "place", so C++ and C# code is the way to solve questions, but ArcPy can be used to validate the FGDBAPI code. - V
... View more
10-21-2015
10:12 AM
|
0
|
2
|
4353
|
|
POST
|
The issue is one of terminology -- File Geodatabases do not store layers. "Layers" are drawing rules associated with a feature class (which could come from any number of sources, including File GDB). In the FGDB API, the list of feature classes is accessed by a call to Geodatabase.GetChildDatasets(). It will generate a list of all standalone feature classes and all feature datasets, which can each be inventoried with another call (specifying the FDS as the parentPath). - V
... View more
10-21-2015
09:14 AM
|
1
|
0
|
4352
|
|
POST
|
Most employees use single-use licenses, but Workstation requires a floating-seat, for which a central license manager was configured. Getting a new local license isn't an issue, but the lack of a shared server indicates where things are heading. - V
... View more
10-21-2015
08:52 AM
|
1
|
3
|
1237
|
|
POST
|
I tried to write an AML the other day to whip up an arc-node topology graphic, and discovered that I'd need to create my own 10.0 license server (which I haven't done in years). Cue the Dylan -- "...For the times they are a-changin'."
... View more
10-20-2015
08:02 PM
|
1
|
5
|
1237
|
|
POST
|
Did you really want to clobber all geometries in the table to have a single coordinate value? Is the data really accurate to sub-Angstrom precision? It would help if you provide a clear description of your procedure, including exact commands and exact error messages. - V
... View more
10-19-2015
07:49 AM
|
0
|
3
|
2021
|
|
POST
|
You haven't provided any of the details that would permit us to help you. Among the things missing: The RDBMS (including version) Version of ArcGIS Detailed descriptions of all columns in both tables If the tables have geometry columns, the geometry storage type(s) The column(s) the tables have in common The indexes available on those columns I always use SQL directly to construct views. - V
... View more
10-19-2015
07:35 AM
|
2
|
0
|
1025
|
|
POST
|
Black-and-white imagery is 1-bit (2^^1). Two bits would allow for four states (2^^2). Some gray-scale imagery may be 4-bits (2^^4 = 16 values), and both 4-bit and 8-bit imagery could be colormapped.
... View more
10-16-2015
07:37 AM
|
0
|
2
|
3483
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 06-30-2026 09:35 AM | |
| 2 | 06-08-2026 09:13 PM | |
| 1 | 05-29-2026 12:51 PM | |
| 1 | 06-01-2026 06:03 PM | |
| 2 | 05-29-2026 08:31 AM |