|
POST
|
I was a hardcopy addict back in the day, sending print jobs just to get the think time required to reach the green-bar printers on the 3rd floor of the other building, but got broken of it when I moved to the DC RO (1990), and we didn't have a printer on the Unix network. When I *did* need a hardcopy, I had to bundle up the file(s) in a zipped-tar, engage a UUCP session to mail it to myself in Redlands, dial in the to a modem-equipped host (9.6kbaud), convert it to postscript, send it to the printer, ask a buddy to pick it up off the printer tray and fax it to me, then photocopy the wax-paper thermal sheets for something that didn't look like an 3rd-grade art project on papyrus rolls. Nowadays, even my "to do list" of project tasks is in an ASCII file or in a defect tracking system. I still kill too many trees sketching out topology rules and other graphical relationships, but documentation lives online, with only the odd 3-5 page set to noodle over when in full-on design mode.
... View more
12-02-2015
01:10 PM
|
4
|
1
|
2473
|
|
POST
|
Then there's the whole copyright thing. I doubt it's legal to publish a time snapshot of Esri's documentation into a PDF, even if there were some valid use case for doing so (and the document size didn't make it perilously unwieldy).
... View more
12-02-2015
12:33 PM
|
3
|
5
|
2473
|
|
POST
|
Another issue is that of the coordinate reference definition. If you've mashed something together, you might have an X/Y precision of which is larger than the size of your features. One way to detect this is if you make rectangles of progressively smaller area (10% shrinkage) and look to see if they start distorting before collapsing completely.
... View more
12-01-2015
12:28 PM
|
3
|
1
|
14605
|
|
POST
|
Each query, no matter what source, has a fixed setup cost. Try joining the polygons to the points instead -- instead of 200M point in polygon queries you'll have N polygon contains point queries. Either way, you'll have a possibility of point on polygon boundary (either two polys or none) as well as points not in any polygon. If the points are spatially fragmented, the query time may still be significant. You could address this by using Sort (Data Management) to organize the features with a spatial sorting order (requires Advanced license) or by sorting on an attribute which is spatially correlated (zip code, map book tile,...) - V
... View more
11-30-2015
11:46 AM
|
1
|
0
|
1455
|
|
POST
|
Yes, in languages where backslashes are escaped (C/C++/Java/C#/Python*), the string "\" will be represented "\\". As noted in my answer, the command-line is not one of those places, so if the parameter is being passed from the command-line, the string "\" must be used ("\\" attempts to find the empty-string named child of the empty-string dataset [which can't exist, so no rows are returned]). - V * Except when a literal flag is used on the string, e.g., "path = r'\' "
... View more
11-13-2015
10:17 AM
|
0
|
0
|
1538
|
|
POST
|
Esri does not license Oracle deployments. It licenses ArcGIS for Server hosts. Enterprise geodatabases require an ArcGIS for Server license. Back in the days when ArcSDE existed, the licensing was applied where the application server resided, but ArcSDE doesn't exist, and neither do application servers. You can run a fifty node Oracle RAC database, and it could still only require one ArcGIS for Server seat (probably ineffectively, but that's a technical issue), depending on how your ArcGIS Server site(s) is(are) configured. Since you did not address how your ArcGIS for Server sites and servers are deployed, there's no way to say how many seats of ArcGIS Server are required in your configuration. The fact is, licensing is NOT a technical issue -- it's a contractual one, which is why I recommended you speak with the folks who know the most about contracting (who are not over-abundant here in the technical forums). Yes, the issue impacts technical deployment, but that just reinforces getting a proper understanding from the folks who are working with licensing on a regular basis (and presumably know what you have licensed to date). The usual steps for ArcGIS for Server deployment are: Collect requirements Design an initial implementation Cost the implementation plan Redesign in light of costing (loop back to 3 until plan is most cost-effective) Execute the purchase Install and configure the implementation as per design Maintain the GIS deployment This GeoNet forum is more about the nuts-and-bolts of steps 6 & 7, and only lightly addresses steps 1 & 2. The best way to understand steps 2-4 is to start by discussing the licensing model with your local Esri rep. They'll be able to give you an overview of how ArcGIS licensing works and some boilerplate Server designs from which to get started. If they can't answer technical questions, they'll have access to experts who can. Ed Services has a three-day class on System Architecture Design Strategies, and the Systems Integration team has a wiki site, but neither is going to address licensing differences between single-node and RAC deployment of enterprise geodatabases (because there aren't any). - V
... View more
11-13-2015
10:03 AM
|
1
|
0
|
1462
|
|
POST
|
ArcGIS for Server is licensed by ArcGIS for Server deployments. If you have a redundant set of ArcGIS Server sites accessing the RAC set, those hosts would be licensed, depending on whether the sites were configured active-passive or active-active. In general, licensing questions should be directed to your Esri account manager or Customer Service representative -- asking fellow users (or even Esri staff) who are not parties to your license agreement with Esri isn't going to generate a legally binding answer. - V
... View more
11-12-2015
05:42 PM
|
0
|
2
|
1462
|
|
POST
|
C# is a wrapper around C++. All functions return status in C++, but that is covered by exceptions in C#, so the third parameter of GetChildDatasets in C++ (which is the returned object pointer, by reference) is just the returned value in C#. If you pull up the documentation for both C++ and C# side by side, the equivalents should be intuitive. In C#, the top level would be extracted exactly the same, using Geodatabase.GetChildDatasets with a parentPath of "\" and a dataSetType of ""("Feature Class" for only feature classes). - V
... View more
11-12-2015
06:21 AM
|
2
|
2
|
1538
|
|
POST
|
Creating a clustered index (for storage formats that support them) comes the closest to "permanently" sorting a table (albeit with possible fragmentation and performance issues), but even that won't address the return values from a versioned feature class and spatial queries, depending of storage forrmat, might ignore that order anyway. -V
... View more
11-06-2015
08:10 AM
|
1
|
0
|
1480
|
|
POST
|
Using a C++ app I had already created, I fetched every row of "\\sw_Manhole", and it took 7.3 MILLISECONDS to read 302 rows with 33 fields (OpenTable took 3.2ms, so the actual average read duration was 12.4 microseconds per feature). Each shape had one vertex (they're points, after all). ./fgdbtimer2 ../WS_Data.gdb "\sw_Manhole" SHAPE
Field 1: OBJECTID OID
Field 2: ASSET_ID NSTRING
Field 3: INSTALL_DATE DATE
Field 4: RIM_ELEVATION FLOAT64
Field 5: DEPTH FLOAT64
Field 6: DIAMETER FLOAT64
Field 7: COVER_TYPE NSTRING
Field 8: VENT_TYPE NSTRING
Field 9: DROP_STRUCTURE INT16
Field 10: CONTRACTNUM NSTRING
Field 11: ASSET_STATUS NSTRING
Field 12: OWNERSHIP NSTRING
Field 13: MANAGEDBY NSTRING
Field 14: UPDATETXID INT32
Field 15: LASTEDIT DATE
Field 16: WS_STREET NSTRING
Field 17: WS_CROSS_STREET NSTRING
Field 18: WS_MANUFACTURER NSTRING
Field 19: WS_PROJECT_NAME NSTRING
Field 20: WS_PROJECT_PHASE NSTRING
Field 21: WS_ASSUMPTION_AREA NSTRING
Field 22: WS_GPN NSTRING
Field 23: WS_DEVELOPER NSTRING
Field 24: WS_CONSULTANT NSTRING
Field 25: WS_FEATURE_CREATE DATE
Field 26: WS_FEATURE_EDIT DATE
Field 27: WS_LAST_EDITOR NSTRING
Field 28: RJB_FLOW_TYPE INT16
Field 29: created_user NSTRING
Field 30: created_date DATE
Field 31: last_edited_user NSTRING
Field 32: last_edited_date DATE
Field 33: Shape SHAPE
mode: SHAPE
reads: 303
v/f: 1
ms_desc: 0.153
ms_open: 3.27
ColA: 3.423
ms_read: 3.769
ms_get: 0.122
total: 7.314 Your application is sub-optimal for performance evaluation because of multiple GetGeometry invocations, but there's nothing obvious as to why my app should run nearly 33 thousand times faster. I recommend you: Instrument your code with a millisecond resolution timer Clean up the coding to be as efficient as possible Re-run your evaluation You can then report back on the timing for each function call. - V PS: MultiPointShapeBuffer is for multipoint shapes -- Lines and Polygons use MultiPartShapeBuffer
... View more
11-05-2015
07:58 AM
|
0
|
0
|
1719
|
|
POST
|
You've left a great deal out of this post, making it almost impossible to assist: On which operating system is the application deployed? Is the source FGDB on a local or network disk? If local, what kind or disk, and what mean seek time? if networked, what networking protocol, and at what bandwidth? How many total feature classes? How many average features per feature class (rows per table)? How many average vertices per feature? What is the mean read time per feature? What is the total size on disk of the geodatabase? How do you define "too much time" (what is your requirement)? In the future, please format code using the "Use advanced editor" option, selecting the code block, and choosing the ">>" icon to specify formatting with "Syntax Highlighting" or "C#" (or whatever is appropriate). It would also help to explicitly state you are using the 1.4 API with C# language and whatever IDE you are using. - V
... View more
11-04-2015
12:00 PM
|
0
|
2
|
1719
|
|
POST
|
Actually, you NEVER want to build a table indexes before initial load. This guarantees the worst possible load performance, and will fragment the spatial index (which will be sub-optimal, since the index parameters are best derived from the data to be indexed, after it has been loaded). In reality, shapefiles will often out-perform an enterprise geodatabase table, especially in unbounded queries (draw all rows), just because the database overhead to support ACID can't compete. Small subset draw performance for ALL data formats always benefits from reorganizing the features into spatial order, though it may be barely measurable with small tables, it's always present, and in large tables is always significant (and in very large tables can have several orders of magnitude of performance gain vice raindomly organized tables. There are dozens of variables that go into draw performance, so a "What can be done?" question can only be answered, "Well, it really depends." To generate an answer, you'd need to provide: The exact RDBMS The exact version of ArcGIS (and if different, the version of the geodatabase) The exact coordinate reference The topology class (point/mpoint/line/poly) The storage format The number of features The average number of vertices per feature The average extent of each feature An indication of the spatial fragmentation (how far apart the rowids are from each other for each index tile) -- whether the features are sorted on a spatial component like map grid designator or in feature creation order, or randomly over time. What steps have been taken to optimize render performance There are also render rule optimizations (Are the features being drawn by multiple queries?) and other issues that impact draw performance that have nothing to do with storage format. It also helps to understand that features are NEVER "loaded into SDE". Features are always loaded into the database through ArcSDE components, as embedded in ArcGIS clients. - V
... View more
11-01-2015
07:09 PM
|
3
|
0
|
3084
|
|
POST
|
I just used 10.2.2 Desktop to import a shapefile with an "N 10" column into an enterprise geodatabase, and that field was mapped to Double (because a "10" width could exceed INT_MAX, e.g., 2222222222), and had no difficulty reassigning the type to Long (and the NULLS_ALLOWED to False), then correctly importing the contents. This issue is a fundamental problem with shapefile numeric representation, but I don't believe it's a bug in ArcGIS. The old behavior (assuming Long with a width of 10) was likely to destroy data (which was a serious bug). The current behavior requires more careful review of column mapping, but that is why the column mapping options exist. - V
... View more
10-28-2015
09:59 AM
|
0
|
0
|
3656
|
|
POST
|
This isn't so common a practice that it required a context menu option. If you use the Truncate Table (Data Management) tool, you can empty the existing contents, so that a "Load -> Load Data..." option would work. Note: If your shapefile is large (100k-250k+ rows), you will see significant execution time benefit from going into the feature class properties and dropping the spatial index after Truncate, but before load, then rebuilding the index afterwards (this is actually what the old command-line 'shp2sde' utility would do, and in fact is best practice when writing scripts). I think the Truncate Table tool will require an exclusive lock, so the ArcGIS Server service(s) which access the table must be stopped before reloading. - V Edit: Added Note above
... View more
10-28-2015
08:39 AM
|
0
|
0
|
2228
|
|
POST
|
I'm sorry, but I have no idea what an RGN or DES file might be. The only place metadata is stored "in" a feature class is in the XML document which defines the feature class, which is exposed by Geodatabase::GetDatasetDocumentation(). Once you have the XML you can parse it with whatever tool you like. In the future, please start a new thread to ask a new question. - V
... View more
10-28-2015
08:13 AM
|
0
|
0
|
1538
|
| 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 |