tag:blogger.com,1999:blog-50811374599802098332024-03-05T08:22:20.936-05:00Ben MearnsGIS and Data in PAAnonymoushttp://www.blogger.com/profile/16203487152727179441noreply@blogger.comBlogger153125tag:blogger.com,1999:blog-5081137459980209833.post-25891263959007297842017-11-13T12:38:00.000-05:002017-11-13T12:40:58.213-05:00Geoserver WFS-T PostGIS (PostgreSQL) Layer Read-OnlyAn unexpected Read-Only message is common when attempting a Geoserver WFS-T request via the Demo page. This is also true of WFS-T on a PostGIS-backed Layer.<br />
<br />
Here are a list of possible culprits:<br />
<br />
<ol>
<li>Verify the layer is writable by the Postgres role (user account) which you've used to authenticate in Geoserver, via the Store dialog for that Layer.</li>
<li>The table must have a primary key in Postgres. It may be necessary to "Reload Feature Type" under the Layer page > Data Tab > Feature Type Details section. It also be necessary to "Expose Primary Keys" in the Store for the Layer.</li>
<li>The WFS-T Demos will not successfully authenticate out-of-the-box (which will probably give a different error message). <a href="http://www.benmearns.com/2017/11/geoserver-wfs-t-postgis-postgresql.html" target="_blank">See my post on the issue, and how to resolve it.</a></li>
<li>If you are using my work around, linked from above, you are using anonymous authentication (for testing only, of course!). You will need to create a write rule that applies to the anonymous role and the workspace which relates to your Layer/Store.</li>
</ol>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDjjT_tNalzyjWnGTBpW-S1DjbkktbWDJgBCcreHlhiZeBVK-r7d4nLIuo-cBOE3nsK9npbUOzxae8660tyUlQP-Ao9XJZbdz2hSWIErr7hZJG3aerHDMZpHopFOStw23rd9ej9QmnYCV5/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="926" data-original-width="1073" height="275" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDjjT_tNalzyjWnGTBpW-S1DjbkktbWDJgBCcreHlhiZeBVK-r7d4nLIuo-cBOE3nsK9npbUOzxae8660tyUlQP-Ao9XJZbdz2hSWIErr7hZJG3aerHDMZpHopFOStw23rd9ej9QmnYCV5/s320/Capture.PNG" width="320" /></a></div>
<div>
<br /></div>
<div>
In my latest experience with this error, culprit #4 got me :-p</div>
Anonymoushttp://www.blogger.com/profile/16203487152727179441noreply@blogger.com0tag:blogger.com,1999:blog-5081137459980209833.post-5839486892799919792017-10-19T13:33:00.001-04:002017-10-19T13:39:16.352-04:00Solution, Geoserver bug with authenticated requestsGeoserver ships with a good list of helpful Demo requests -- however, the authenticated requests fail if you do not add the relevant URL path to a Filter Chain which includes a "form" authentication filter.<br />
<br />
If you run any Demo request involving authentication without the relevant Filter Chain modification you will see the following message:<br />
<br />
<i>HTTP response: 401 No AuthenticationProvider found for org.springframework.security.authentication.UsernamePasswordAuthenticationToken</i><br />
<br />
The same response is seen when running the request with curl, e.g.:<br />
<br />
<i>curl -u admin:geoserver "http://localhost:8080/geoserver/wfs?request=GetFeature&version=1.1.0&typeName=topp:states&outputFormat=GML2&FEATUREID=states.3"</i><br />
<br />
You can resolve this issue by adding the relevant URL path suffix (e.g., /wcs* or /wfs*) to the "web" Filter Chain, which includes the "form" Authentication Filter.<br />
<br />
Access this dialog in the Web Administration interface under Security > Authentication > Filter Chains > web.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLvQssrEx2t7AhGjcxHgS6PZG2v4bKjbHZw_iUip_6S1vxaMAsLn4R6VTtzb8JIxE1Q9jIp68np7_mp2exVEMI9j1hEHhuU67XMWcg6U5umdRtY1xC4Cd-h6CwlI34Pv38o2PIKi2qtdXA/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="828" data-original-width="1111" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLvQssrEx2t7AhGjcxHgS6PZG2v4bKjbHZw_iUip_6S1vxaMAsLn4R6VTtzb8JIxE1Q9jIp68np7_mp2exVEMI9j1hEHhuU67XMWcg6U5umdRtY1xC4Cd-h6CwlI34Pv38o2PIKi2qtdXA/s1600/Capture.PNG" /></a></div>
<br />
<br />
I've commented on the bug in the Geoserver project JIRA -- to resolve this bug this issue should be either noted or the underlying xml's changed -- otherwise the Demos fail.<br />
<br />
<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/16203487152727179441noreply@blogger.com0tag:blogger.com,1999:blog-5081137459980209833.post-80472851846455722562017-06-28T17:39:00.001-04:002017-06-28T22:29:25.524-04:00Georeference a non-referenced image with gdal_translateThis technique is useful for georeferencing an image that you could be getting from a WMS server.<br />
<br />
To get an image from a WMS Server, first do a capabilities request via the URL. This will return an XML with parameters. The result will look something like this (you could also substitute your target WMS, layer, bbox, etc.<br />
<br />
http://imagery.pasda.psu.edu/arcgis/services/pasda/PAMAP_cycle2/MapServer/WMSServer?service=WMS&version=1.1.0&request=GetMap&layers=11&styles=&bbox=-77.16641161363148171,39.76300177722033169,%20-77.16220203861050209,39.76481826348722137&width=800&height=400&srs=EPSG:4326&format=image/jpeg<br />
<br />
change the format parameter to image/tiff to download<br />
<br />
if gdal isn't already installed, do so now, and navigate to the gdal bin directory, if it isn't on your path <br />
<br />
gdal translate will require input file, output file, the desired spatial reference system, and ground control points (gcp) which you will calculate from the bounding box you entered above and the image pixel size (800 by 400). These correspond to the corners of the image (coordinates differ from above slightly, not intended).<br />
<br />
gdal_translate c:\temp\WMSServer.tiff c:\temp\aerial.tif -of GTiff -a_srs EPSG:4326 -gcp 0 0 -77.16694 39.764799 -gcp 800 400 -77.161927 39.763017 -gcp 0 400 -77.16694 39.763017 -gcp 800 0 -77.161927 39.764799<br />
<br />
Use gdal_warp for further transformation, if a simple scaling wasn't adequate. This is particularly necessary for Geoserver. In that case, also use the -co tfw=yes parameter to create a world file, since Geoserver doesn't recognize srs in the standalone GTiff.<br />
<br />
It looks like this: gdalwarp c:\temp\aerial.tif c:\temp\aerialw.tif -of GTiff -co tfw=yes -t_srs EPSG:4326Anonymoushttp://www.blogger.com/profile/16203487152727179441noreply@blogger.com0tag:blogger.com,1999:blog-5081137459980209833.post-62265041053259999602015-10-20T13:04:00.001-04:002015-10-20T13:04:53.978-04:00Local Vagrant VM as part of a deployment strategy<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Local Vagrant VM as part of a deployment strategy</title>
<link rel="stylesheet" href="https://stackedit.io/res-min/themes/base.css" />
<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"></script>
</head>
<body><div class="container"><p>Previously I discuss setting up a Vagrant EC2 VM for web application deployment. In this post, I will walk through the process of setting up a local development VM with the objective of maintaining a commmon environment between the local and remote (EC2) VM’s.</p>
<h1 id="the-local-vm">The local VM</h1>
<blockquote>
<p>I assume that you’ve already installed Virtual Box guest additions</p>
</blockquote>
<h4 id="1-create-the-directory-for-the-new-vagrant-configuration-files-i-will-call-mine-vagrant-local-mkdir-vagrant-local-and-move-to-that-directory-cd-vagrant-local">(1) Create the directory for the new Vagrant configuration files – I will call mine vagrant-local <code>mkdir vagrant-local</code> – and move to that directory <code>cd vagrant-local</code>.</h4>
<h4 id="2-create-a-new-vagrantfile-using-your-favorite-text-editor-eg-vi-vagrantfile-and-insert-the-following-text">(2) Create a new vagrantfile, using your favorite text editor (e.g., <code>vi vagrantfile</code>) and insert the following text</h4>
<pre class="prettyprint"><code>Vagrant.configure(2) do |config|
config.vm.box = "hashicorp/precise64"
config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.synced_folder "..\\vagrant_data", "/vagrant_data"
config.vm.provider "virtualbox" do |vb|
# # Display the VirtualBox GUI when booting the machine
vb.gui = false
#
# # Customize the amount of memory on the VM:
# vb.memory = "1024"
end
# config.vm.provision :shell, path: "bootstrap.sh"
end</code></pre>
<h4 id="3-save-this-file-and-bring-the-vagrant-vm-vagrant-up">(3) Save this file, and bring the vagrant VM vagrant up</h4>
<h4 id="4-as-you-install-packages-make-sure-to-add-those-lines-to-a-new-file-vi-bootstrapsh-you-can-also-add-checks-where-necessary-my-bootstrapsh-is-long-but-heres-a-portion-of-it-for-example">(4) As you install packages, make sure to add those lines to a new file, (<code>vi bootstrap.sh</code>). You can also add checks where necessary. My bootstrap.sh is long, but here’s a portion of it for example:</h4>
<pre class="prettyprint"><code>#!/usr/bin/env bash
# install and configure linux tools
sudo apt-get -y update
# sudo apt-get -y upgrade
sudo apt-get -y install unattended-upgrades make vim acl
sudo addgroup web
sudo adduser www-data web
sudo usermod -a -G web vagrant
# apache install and config
sudo apt-get install -y apache2
if ! [ -L /var/www ]; then
rm -rf /var/www
ln -fs /vagrant_data /var/www
fi
sudo chown www-data:web /var/www
sudo a2enmod rewrite
sudo /etc/init.d/apache2 restart
# sqlite install and config
sudo apt-get -y install sqlite3 libspatialite3 spatialite-bin</code></pre>
<h4 id="5-uncoment-line-second-to-end-configvmprovision-shell-path-bootstrapsh-in-your-vagrantfile-with-your-favorite-text-editor-eg-vi-vagrantfile-to-configure-provisioning-via-bootstrapsh-on-a-new-vm-when-vagrant-up-is-run">(5) Uncoment line second to end (<code>config.vm.provision :shell, path: "bootstrap.sh"</code>) in your vagrantfile with your favorite text editor (e.g., <code>vi vagrantfile</code>) to configure provisioning via bootstrap.sh on a new VM when <code>vagrant up</code> is run.</h4>
<blockquote>
<p><em>You will need to make the same changes to <code>..\vagrant-aws\vagrantfile</code> and a <code>..\vagrant-aws\bootstrap.sh</code>, created in the previous post, to syncronize your development and deployment provisioning</em></p>
</blockquote>
<h4 id="6-destroy-the-existing-vagrant-instance-including-all-files-created-when-you-brought-it-up-vagrant-destroy-and-bring-up-the-new-instance-vagrant-up">(6) Destroy the existing vagrant instance, including all files created when you brought it up <code>vagrant destroy</code> and bring up the new instance <code>vagrant up</code></h4>
<blockquote>
<p>Written with <a href="https://stackedit.io/">StackEdit</a>.</p>
</blockquote></div></body>
</html>Anonymoushttp://www.blogger.com/profile/16203487152727179441noreply@blogger.com0tag:blogger.com,1999:blog-5081137459980209833.post-31030006628062485172015-10-16T17:25:00.001-04:002015-10-16T17:28:33.403-04:00Vagrant on AWS with Windows<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vagrant on AWS with Windows</title>
<link rel="stylesheet" href="https://stackedit.io/res-min/themes/base.css" />
<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"></script>
</head>
<body><div class="container"><blockquote>
<p><strong>Required installations:</strong> <br>
– AWS CLI <br>
– VirtualBox <br>
– Vagrant <br>
– an existing EC2 instance with an account private key on your local file system.</p>
<p><em>[Optional]</em> If you use PuTTy ssh client, you may want to install and configure the Vagrant PuTTY plugin, by following instructions here: <a href="https://github.com/nickryand/vagrant-multi-putty">https://github.com/nickryand/vagrant-multi-putty</a>. You will also need to make a symbolic link to the executable, using the following command.</p>
<pre class="prettyprint"><code>> mklink D:\Vagrant\embedded\bin\putty.exe "C:\Program Files (x86)\PuTTY\putty.exe"</code></pre>
</blockquote>
<h4 id="1-use-the-aws-clisecurity-token-service-to-generate-temporary-credentials-for-aws">(1) Use the AWS CLI/Security Token Service to generate temporary credentials for AWS</h4>
<pre class="prettyprint"><code>> aws sts get-session-token </code></pre>
<p><em>The credentials returned by this command will be valid for 1 hour.</em></p>
<h4 id="2-install-the-vagrant-aws-plugin">(2) Install the Vagrant AWS plugin.</h4>
<pre class="prettyprint"><code>> vagrant plugin install vagrant-aws</code></pre>
<h4 id="3-add-the-dummy-box-provided-by-the-vagrant-aws-project-this-is-a-barebones-box-compatible-with-aws-we-will-flesh-this-out-in-the-vagrantfile-to-be-created-in-the-next-step">(3) Add the “dummy” Box provided by the vagrant-aws project. This is a barebones Box compatible with AWS. We will flesh this out in the Vagrantfile to be created in the next step.</h4>
<pre class="prettyprint"><code>> vagrant box add dummy https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box</code></pre>
<h4 id="4-create-a-new-directory-to-hold-files-for-this-vagrant-instance-im-calling-this-vagrant-aws">(4) Create a new directory to hold files for this Vagrant instance. I’m calling this vagrant-aws.</h4>
<pre class="prettyprint"><code>> mkdir vagrant-aws</code></pre>
<h4 id="5-with-your-favorite-text-editor-create-a-file-called-vagrantfile-inside-this-new-directory-edit-this-file-vagrant-awsvagrantfile-copying-and-pasting-the-following-to-the-file-source">(5) With your favorite text editor create a file called <code>Vagrantfile</code> inside this new directory. Edit this file <code>vagrant-aws\Vagrantfile</code> copying and pasting the following to the file (source).</h4>
<pre class="prettyprint"><code>Vagrant.configure("2") do |config|
config.vm.box = "dummy"
config.vm.provider :aws do |aws, override|
aws.access_key_id = "YOUR KEY"
aws.secret_access_key = "YOUR SECRET KEY"
aws.session_token = "SESSION TOKEN"
aws.keypair_name = "KEYPAIR NAME"
aws.ami = "ami-7747d01e"
override.ssh.username = "ubuntu"
override.ssh.private_key_path = "PATH TO YOUR PRIVATE KEY"
end
end</code></pre>
<h4 id="6-now-edit-this-text-with-the-credentials-returned-by-aws-sts-from-above-you-can-use-a-different-ami-the-current-one-given-is-for-ubuntu-1204-x64-or-change-many-other-options-as-described-in-the-vagrant-aws-plugin-documentation">(6) Now edit this text with the credentials returned by AWS STS (from above). You can use a different AMI (the current one given is for Ubuntu 12.04 x64) or change many other options, as described in the Vagrant AWS plugin documentation.</h4>
<h4 id="7-now-you-can-bring-the-instance-up-with-vagrant-first-making-sure-you-are-in-the-directory-where-you-had-created-the-vagrantfile">(7) Now you can bring the instance up with Vagrant, first making sure you are in the directory where you had created the Vagrantfile.</h4>
<pre class="prettyprint"><code>> cd vagrant-aws
> vagrant up</code></pre>
<p>To work on your new Vagrant VM, use <code>vagrant ssh</code> or <code>vagrant putty</code> if you set up Putty using the plugin mentioned below. Once you’re finished, you can use <code>vagrant destroy</code> to completely blow away this instance, or some other vagrant command if you need to come back to the instance.</p>
<h3 id="next-the-local-vm">Next: The local VM</h3></div></body>
</html>Anonymoushttp://www.blogger.com/profile/16203487152727179441noreply@blogger.com0tag:blogger.com,1999:blog-5081137459980209833.post-11853843498410030242015-09-25T09:58:00.001-04:002015-09-25T20:25:27.045-04:00I'm back!I'm back from my <a href="http://benmearns.blogspot.com/p/cross-country-bike-trip-summary.html">cross country bike ride</a>! On a completely different topic, my book with Packt Publishing, is finished and available for pre-order on Amazon, Barnes and Noble, and other fine book retailers:<br />
<br />
<br />
<script type='text/javascript'>
var amzn_wdgt={widget:'MyFavorites'};
amzn_wdgt.tag='widgetsamazon-20';
amzn_wdgt.columns='1';
amzn_wdgt.rows='3';
amzn_wdgt.title='QGIS Blueprints by Ben Mearns';
amzn_wdgt.width='250';
amzn_wdgt.ASIN='1785289071';
amzn_wdgt.showImage='True';
amzn_wdgt.showPrice='True';
amzn_wdgt.showRating='True';
amzn_wdgt.design='2';
amzn_wdgt.colorTheme='Orange';
amzn_wdgt.headerTextColor='#FFFFFF';
amzn_wdgt.marketPlace='US';
</script>
<script type='text/javascript' src='http://wms-na.amazon-adsystem.com/20070822/US//js/AmazonWidgets.js'>
</script>Anonymoushttp://www.blogger.com/profile/16203487152727179441noreply@blogger.com0tag:blogger.com,1999:blog-5081137459980209833.post-43087400058456868972015-08-06T09:55:00.002-04:002015-08-06T09:56:40.082-04:00Out to ride -- back sometime in September<span style="font-size: x-large;">I'm on a cross country bike ride!</span><br />
<br />
My progress as of 8/4/15:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja607wFNVQqR2VyySPalNrlNEMe8AB86GvGH0KydJEvr-WybttUfzthELWp5NGqJ5MA4mzoJFYJ-V39bHnYJNc2amv0yq2QAvLS-T90Er5T1E8KKsbDg8Wa2_ecPKTS4jLgbCmvFGSGu8I/s1600/big5.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="182" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja607wFNVQqR2VyySPalNrlNEMe8AB86GvGH0KydJEvr-WybttUfzthELWp5NGqJ5MA4mzoJFYJ-V39bHnYJNc2amv0yq2QAvLS-T90Er5T1E8KKsbDg8Wa2_ecPKTS4jLgbCmvFGSGu8I/s320/big5.PNG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<a href="https://drive.google.com/folderview?id=0B0xPH918HEJ9aG52VjBQdHlhYm8&usp=sharing" target="_blank"><span style="font-size: large;">Photos</span></a>Anonymoushttp://www.blogger.com/profile/16203487152727179441noreply@blogger.com1tag:blogger.com,1999:blog-5081137459980209833.post-85036629960525326802015-02-25T10:25:00.000-05:002015-02-26T10:35:53.087-05:00cakephp controller save from scaffolded "join table" relationship, non-conventional primary keysWhen I build interfaces on top of a pre-established database schema, I usually can't change schema properties. That's a problem when working with a "convention over configuration" MVC Framework like cakephp. <br />
<br />
After baking/scaffolding a CRUD interface based on a "join table" (HABTM) class, that issue came into focus, once again. I have had run into some fairly easily resolvable issues involving some non conventional naming in the schema, such as primary key names. I had primary key names from different tables that included the table prefix as well as irregular pluralization in the names. Initially I wasn't able to get my dropdowns to populate from related tables, as described in the previous post. Then I ran into an even stickier problem: the save method would fail on validation in the add method of the join table controller.<br />
<br />
As it turned out, the form helper input method, though it would accept various names (probably cake-conventional) to refer to itself and to the primary key field, would not accept the ACTUAL name of the primary key field (which, while cake-unconventional, was actually set in both its own class model using $primaryKey and the join model using $foreignKey -- BTW, the same name was in use in the join table database, so this was really convention over configuration coming back to bite me).<br />
<br />
To fix this I added the following to the controller to remap the cake-conventional failing field names to the actual (working!) field names:<br />
<br />
<br />
<script src="https://gist.github.com/bmearns/f41848d0fe137ea0f200.js"></script>
<br />
<br />
I discovered, subsequently, that defining foreignKey (of parent) in child class models fixes some issues ... may even fix issue that I describe above.
<br />
<script src="https://gist.github.com/bmearns/0e0a7b21810fbba6094f.js"></script>
<br />
Relates to: Cakephp SQL Error 1054 Unknown Column In The Field List (id column)Anonymoushttp://www.blogger.com/profile/16203487152727179441noreply@blogger.com0tag:blogger.com,1999:blog-5081137459980209833.post-23662454872600359622015-02-24T16:20:00.000-05:002015-02-24T16:27:33.571-05:00Auto-populate Bake/Scaffold Form in cakephpTo my knowledge, there's no way to "autopopulate" a form created through cakephp's bake/scaffold utility. Populating of the forms are also not well documented. Here's how you do it, with a related table via foreign key in the database.<br />
<br />
<br />
<script src="https://gist.github.com/anonymous/8204555d5827f8d2ac8d.js"></script>Anonymoushttp://www.blogger.com/profile/16203487152727179441noreply@blogger.com0tag:blogger.com,1999:blog-5081137459980209833.post-31776246497351687122014-09-09T16:27:00.001-04:002014-09-09T16:27:11.090-04:00Applying Patches on ArcGIS Server for Linux (as root)For various reasons, I had found I needed to be root to install ArcGIS Server on Centos.<div>
<br /></div>
<div>
I ran into my first problem with that configuration on patching, when the script halts with the following message "You must install this [patch] as ArcGIS Server Owner, do not install it as ROOT user." I was able to successfully bypass this by commenting out this if block from the patch script (applypatch).</div>
<div>
<br /></div>
<div>
... so far, so good.</div>
Anonymoushttp://www.blogger.com/profile/16203487152727179441noreply@blogger.com0tag:blogger.com,1999:blog-5081137459980209833.post-5379860129900265292014-08-15T16:03:00.000-04:002014-08-15T16:20:49.066-04:00ArcGIS Server on Centos, continuedWhen our cluster was upgraded, I somehow lost the ability to run ArcGIS Server. No problem, I said, I'll just rebuild the machine. This is where I was again reminded that <u>ArcGIS Server installation is very different from other Linux software</u>.<br />
<br />
The biggest issue is that ArcGIS installers will only run when logged in root. Yeah, not running a bash as root, or sudo'ing as root, or su'ing to root ... you actually have to log in as root. <br />
<br />
Herein lies the difficulty: the rest of the installer assumes a GUI (e.g., gnome or kde). You can't login to gnome or kde as root.<br />
<br />
If you're doing best practice X tunneling with SSH, then you're using private/public keys. So make sure that you create a .ssh profile with keys and copy over the authorized_keys directory from your normal user. I think this is where my immediate stumbling block was: when I first did this I wasn't thinking as much about security, just seeing if it would work. I didn't use keys. When I rebuilt the system, I did ... and of course I disabled plaintext passwords. I didn't even consider that I'd want to login as root through X/SSH, but I'd guarantee that's how I did it the first time. This was also an issue with X, specifically, because X settings (e.g., $DISPLAY) would only be set for the logged in connection (my normal login) and not root, if not connected directly with root.<br />
<br />
[root@host]# ssh-keygen<br />
<div>
<div>
[root@host]# cd .ssh/authorized_keys .</div>
</div>
<div>
<br /></div>
<br />
Finally, of course, everything ArcGIS runs through Wine on Linux (the Windows compatibility layer). It turned out there was a profile directory that was owned by another use<br />
<br />
# chown -R root /root/arcgis/server/framework/runtime/.wine<br />
<br />
Also two other things I found out during this process:<br />
<br />
<ol>
<li>set is a great command for debugging. I put set -x at the top of authorizeSoftware and this gave me all kinds of great diagnostic info, including THE LOCATION OF THE LOGS!!</li>
<li>the software authorization log was located under: /root/arcgis/server/.Setup/softwareauthorization.log</li>
</ol>
<div>
Thanks, Dean Nairn!</div>
Anonymoushttp://www.blogger.com/profile/16203487152727179441noreply@blogger.com0tag:blogger.com,1999:blog-5081137459980209833.post-15451192849945817142014-07-30T14:57:00.000-04:002014-07-30T14:57:08.267-04:00Undocumented KML Output Conversion, GDALAs noted here: <a href="http://gis.stackexchange.com/questions/18280/batch-convert-geotiffs-to-kmz-files" style="background-color: white; color: #1155cc; font-family: arial, sans-serif; font-size: 13px;" target="_blank">http://gis.stackexchange.com/<wbr></wbr>questions/18280/batch-convert-<wbr></wbr>geotiffs-to-kmz-files</a>, an undocumented method for conversion to KML exists in GDAL's gdal_translate as format KMLSUPEROVERLAY. To do this with an existing image, such as a geotiff, your command will be the following format (on Windows):<br />
<br />
<span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">C:\OSGeo4W64>gdal_translate -of KMLSUPEROVERLAY <inputfilepath> </inputfilepath></span><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;"><outputfilepath> FORMAT=JPEG</outputfilepath></span><br />
<span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;"><br /></span>
<span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">with an example path, this looks like:</span><br />
<span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;"><br /></span>
<span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">C:\OSGeo4W64>gdal_translate -of KMLSUPEROVERLAY </span><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">D:\downloads\tile177_12orthos\</span><wbr style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;"></wbr><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">17</span><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">7.tif D:\downloads\tile177_12orthos\</span><wbr style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;"></wbr><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">177.kml -co FORMAT=JPEG</span><br />
<span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;"><br /></span>
<span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">This will output a tiled images with a KML to tie them all together.</span>Anonymoushttp://www.blogger.com/profile/16203487152727179441noreply@blogger.com0tag:blogger.com,1999:blog-5081137459980209833.post-2162655723417649512014-07-14T17:03:00.001-04:002014-07-14T17:03:57.892-04:00Disk I/O Error on sqlite/spatialiteOn running sqlite CREATE and INSERT queries, I was getting some mysterious errors, like "Error: disk I/O error", despite having the proper permissions on the .sqlite file and adequate space in the directory. I then broke down the compound query to a simple query and was getting "GEOS error: IllegalArgumentException: Points of LinearRing do not form a closed linestring", though I found that doing Hex(PolygonFromText(...)) did return a hex string. My WKT was, however, poorly formed. WKT requires that the final coordinate pair and the beginning coordinate pair are the same, as in PolyFromText('POLYGON((-75.8 38.4, -75.0 38.4, -75.0 39.85, -75.8 39.85))',4236). After I fixed that, my more complex queries were able to run successfully.Anonymoushttp://www.blogger.com/profile/16203487152727179441noreply@blogger.com0tag:blogger.com,1999:blog-5081137459980209833.post-74353108819752698292014-07-08T10:15:00.000-04:002014-07-09T08:19:26.862-04:00github push 403 and Permission deniedInitially I was getting<br />
<br />
error: The requested URL returned error: 403 Forbidden while accessing https://github.com/..<br />
<br />
on<br />
<br />
$ git push origin master<br />
<br />
I read a forum post that recommended<br />
<br />
$ vi .git/config<br />
<br />
and changing the url line from https://github.com/.. to ssh://github.com/..<br />
<br />
and then generating public/private keys and adding this to github. After doing so I was getting<br />
<br />
Permission denied (publickey).<br />
fatal: The remote end hung up unexpectedly<br />
<br />
eventually I solve this by changing that url line in .git/config to<br />
<br />
url = git@github.com:LOGIN/REPONAME.git<br />
<br />
... I also made sure to run<br />
<br />
git config --global user.name "LOGIN"<br />
git config --global user.email EMAILAnonymoushttp://www.blogger.com/profile/16203487152727179441noreply@blogger.com1tag:blogger.com,1999:blog-5081137459980209833.post-1025985027132319282014-06-10T14:38:00.002-04:002014-06-10T14:39:25.438-04:00Quick GIS tip of the day, 6/10/14<span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">To keep symbology of a shapefile or geodatabase feature class, save a layer as a "layer file" (.lyr). If you keep this .lyr file in the same relative path location (in the same directory, for instance), it should continue to reference the data and you can just add the .lyr instead of the data itself. If the data and lyr become seperated you can apply the lyr to the data through the symbology tab. I've included some images to illustrate.</span><br />
<span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfLgRhx7wlLpILmnkcIrkbKMm4pVpobz8iGLZ_qaR4loIi1YsO6OJTi5dJb3QSXhy1OSvnCgC2JQuLocyYOnyJqWNOZRS2Wfo2QfEzC3puPymy3a97seWaOfco-5jquK32aTVpFKWWtB_9/s1600/layerStep1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfLgRhx7wlLpILmnkcIrkbKMm4pVpobz8iGLZ_qaR4loIi1YsO6OJTi5dJb3QSXhy1OSvnCgC2JQuLocyYOnyJqWNOZRS2Wfo2QfEzC3puPymy3a97seWaOfco-5jquK32aTVpFKWWtB_9/s1600/layerStep1.png" height="244" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIsJ3vU5_guMEVqFjr_klxipWRSD7928U8PBmUxP6QsD-IYiIU28jdoFsXdvt-MdEYWF8UQvrWc8-kbg95fDmlHobSENsBW4Z7zUwaLcBdX5IQUxqCXn2zZyOHywaVNE_NH6AVEUZkrGW6/s1600/layerStep2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIsJ3vU5_guMEVqFjr_klxipWRSD7928U8PBmUxP6QsD-IYiIU28jdoFsXdvt-MdEYWF8UQvrWc8-kbg95fDmlHobSENsBW4Z7zUwaLcBdX5IQUxqCXn2zZyOHywaVNE_NH6AVEUZkrGW6/s1600/layerStep2.png" height="180" width="320" /></a></div>
<span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;"><br /></span>Anonymoushttp://www.blogger.com/profile/16203487152727179441noreply@blogger.com0tag:blogger.com,1999:blog-5081137459980209833.post-44206979127820240252014-04-03T13:52:00.000-04:002014-04-03T14:05:25.433-04:00RWD Summit 2014<div>
Here are some notes and thoughts I gathered during the 3-day Responsive Design Summit, which concluded today. <a href="https://docs.google.com/document/d/1Xd8fZpLsuVTgV55FLMKdBpzMnSkNx4NjJnfAlWOd0_8/edit?usp=sharing" target="_blank">Link to the live document.</a></div>
<ul>
<li>Design principals</li>
<ul>
<li>Atomic design</li>
<ul>
<li>Stop thinking about websites as collections of pages. They are collections of elements that, through a browser-based, collaborative, design process, that are mixed together into larger and larger collections. This new paradigm is helpful when doing responsive design, since “a page” is different across different screen sizes. You can start at the level of meaningful/reused DOM elements, disregarding content and style in conceptions, but adding the style and sometimes content (images?), when creating style tiles, style guides, and pattern libraries (<a href="http://bradfrost.github.io/this-is-responsive/patterns.html">public-facing example</a>)</li>
<li><a href="http://patternlab.io/">Pattern lab</a> is a tool created for doing atomic design. It emphasizes browser-based design/decisions, going to the browser first instead of wireframing etc., producing the style tile/guide/and pattern libraries, producing clear annotation from code comments, and allowing naaive (non-programmer) changes within a template-like structure through JSON, using mustache</li>
</ul>
<li>Design/decide on the browser. Avoid other deliverables and get the discussion immediately to the browser</li>
<ul>
<li>Test with content (not lorem ipsum)</li>
<li>Wireframes can be bad … if you need to use wireframe, make it a part of your iterative, browser-based design process</li>
<li> Your own collection of “templates”, “starter kits”, etc. also help with this</li>
</ul>
<li>Test and develop locally</li>
<ul>
<li>Many elements of the workflow below are tuned to this (e.g., scaffolder, package/dependency manager, task runner, versioning, etc.)</li>
<li><a href="http://docs.vagrantup.com/v2/why-vagrant/index.html">Vagrant</a> can be useful for reproducing lower level environments (OS, etc.) although it’s not clear if this should be used over the scaffolder, etc. … or if these complementary</li>
<li>Supports browser-based design</li>
<li>Workflow supports collaborative coding</li>
</ul>
<li>Performance</li>
<ul>
<li>Test your site performance</li>
<ul>
<li><a href="http://www.webpagetest.org/">http://www.webpagetest.org/</a></li>
<li> </li>
</ul>
<li>Wireless network experience will not be improving anytime soon. This is due to the effect of latency (not bandwidth). International visitors will also be much more sensitive to site site. Some things to help</li>
<ul>
<li>Use Compression (whitespace)</li>
<li>Good syntax</li>
<li>Keep presentation in CSS (which is cached for the entire site)</li>
<li>Small as possible</li>
</ul>
</ul>
</ul>
<li>Responsive</li>
<ul>
<li>Can no longer use a limited set of breakpoints, use em’s and use additional self-set breakpoints … breakpoints relative to font size?</li>
<li>These other principals support responsive design … for example: browser based! Overlap in Designer/UX/Dev process and roles.</li>
<li>Frameworks: the two frameworks below responsive user interface elements. Both come as standard web browser syntax files (html, javascript, css)</li>
<ul>
<li><a href="http://foundation.zurb.com/">Foundation</a>: seems to provide a richer set of elements, which can be selected (or not) via the web interface when first downloading the code to add to the project.</li>
<li><a href="http://getbootstrap.com/">Bootstrap</a>: </li>
</ul>
</ul>
<li>Workflow (video which was mentioned: https://www.youtube.com/watch?v=vsTrAfJFLXI)</li>
<ul>
<li>Scaffolding: <a href="http://yeoman.io/">yeoman</a></li>
<ul>
<li>Produces the initial code for particular kinds of projects</li>
<li>Integrates a <strong>Package manager</strong> (bower) and a <strong>task runner</strong>: grunt (good <a href="http://24ways.org/2013/grunt-is-not-weird-and-hard/">“why grunt”). </a> Many “generators” provided to scaffold various projects. Installs and runs through node package manager/nodejs</li>
</ul>
<li>Know your text editor: <a href="http://www.sublimetext.com/2">Sublime Text 2</a> is popular</li>
<li>Versioning: git (github has a friendly client app and is on the cloud)</li>
<li>Preprocessors (see below)</li>
<li>Deployment: beanstalk (versioning plus deployment)</li>
</ul>
<li>Preprocessors</li>
<ul>
<li>Notes </li>
<ul>
<li>it is important to consider how you will run these. Many run through Ruby or Node by default, but have other options (Python, PHP, PHP, etc.). Ruby is installed by default on Mac and is trivial to <a href="http://rubyinstaller.org/">install on Windows</a>. Node seems trivial to install on either platform, as well.</li>
<li>A simper way to run these preprocessors, as well as some other workflow tools, would be through the standalones: <a href="https://incident57.com/codekit/">codekit</a> (Mac) or prepros (Windows)</li>
<li>Cloud-based tool here, with many different preprocessors http://codepen.io/pen/</li>
</ul>
<li>HTML</li>
<ul>
<li><a href="http://haml.info/">HAML</a>: runs on ruby. Sparse syntax which generates complete, well formed, xhtml </li>
<li>Mustache: use for html includes, fed through JSON. Preprocessor available on many platforms.</li>
</ul>
<li>CSS: </li>
<ul>
<li>SASS: CSS preprocessor syntax adding mixins (css snippets), media queries, indents, variables, functions, </li>
<ul>
<li>Many github repos offer useful mixins. For example: <a href="https://github.com/Team-Sass">Team-Saas</a>, but these sometimes rely on ruby</li>
<li>Team Sass provides a few prominent projects/tools … rely on ruby … not supported directly on codekit or prepros</li>
<ul>
<li>Breakpoint: for responsive, multiple screensizes</li>
<li>Toolkit … responsive stuff?</li>
<li>Singularity … layouts!</li>
</ul>
</ul>
<li>SCSS: A more CSS-like version of the SASS syntax, does not require indents … actually this is now the default in SASS at version 3</li>
<li><a href="http://compass-style.org/">Compass</a>: a tool which provides many common mixins, some of which provide cross browser support. Run for free on ruby or install as a standalone <a href="http://compass.kkbox.com/">compass.app</a> .. <a href="http://mhs.github.io/scout-app/">scout</a> is a free standalone version.</li>
</ul>
<li> Javascript</li>
<ul>
<li>Coffeescript</li>
</ul>
</ul>
</ul>
Anonymoushttp://www.blogger.com/profile/16203487152727179441noreply@blogger.com0tag:blogger.com,1999:blog-5081137459980209833.post-70604141402199518452014-04-02T13:39:00.000-04:002014-04-03T08:34:56.530-04:00UD TA speaks about using Story Maps in the classroomWe recently up put out a new <a href="http://www.udel.edu/it/learnit/RecordedClasses.html" target="_blank">LearnIT Express Webinar</a> <a href="http://udcapture.udel.edu/misc/it-css/?t=a04f6444573f37456f8cf4e83edf5168" target="_blank">A Brief Introduction To Story Maps</a>, with Jim Casey, Teaching Assistant and PhD Student, English. In this video, Jim tells us how he guided his introductory undergraduate English class through projects displayed on the ArcGIS Online cloud-based platform. This example demonstrates how (nearly) any type of location-based information can be visualized through GIS software.<br />
<br />
Follow <a href="http://udel.maps.arcgis.com/apps/MapTour/index.html?appid=104bf99c808f49c4829fe82fe2d58fe7&webmap=699b84efd49a441cbd7b49698b8231a8" target="_blank">this link</a> for an example of a student project.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://udel.maps.arcgis.com/apps/MapTour/index.html?appid=104bf99c808f49c4829fe82fe2d58fe7&webmap=699b84efd49a441cbd7b49698b8231a8" target="_blank"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiWdXgvnQ9tLOHYDV_I5Y5FnRk5Kq8imnZ8HDAZohEp1nE1o9YcJ4JavnQ9xEQWUwW7UUTkI6VOoDJUKO9V3MXx-UsXnD76a436G6OPcWqxk4I3qsk5vH43jYSTSk4UX5nd1NwTHh1knQr/s1600/bagelCapture.PNG" height="263" width="400" /></a></div>
<div style="margin: 0px; overflow: hidden; padding: 17px 0px 0px; text-overflow: ellipsis; width: 900px;">
<span style="font-family: inherit; font-size: x-small;">image: Elana Borinsky, Sophomore, B&E</span></div>
Anonymoushttp://www.blogger.com/profile/16203487152727179441noreply@blogger.com0tag:blogger.com,1999:blog-5081137459980209833.post-89624305004494160642014-02-20T16:17:00.001-05:002014-02-21T10:09:20.550-05:00... geocoding continued<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
As I had mentioned in previous email <a href="http://blogs.esri.com/esri/arcgis/2013/04/08/legacy-geocoding-and-routing-services-at-httptasks-arcgisonline-com-will-be-retired-on-december-31-2013/" target="_blank">Esri has retired it's public-facing geocoding and routing services</a>. These services are now only available behind their paywall (through an ArcGIS Online subscription). Esri gives UD a fixed number of credits on our subscription that we can use towards their various services. The cost for use of their Geocoder service is relatively expensive, as far as their services go. For example 300,000 would take nearly our whole allocation of service credits. However, for lesser numbers of geocode (for one-off needs) we can allow you to join our subscirption through an ArcGIS Online account. <a href="mailto:consult@udel.edu" target="_blank">Contact us</a> for more information.</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
For all other geocoding needs, I recommend the following desktop solution:</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
Download <a href="http://css-rdms1.win.udel.edu/downloads/?download=145" style="color: #1155cc;" target="_blank">Disc 2: StreetMap North America</a> (Detailed Road Network, Geocoding, Routing) from the UD GIS Data page.</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
You can then choose one of the .loc files in streetmap_na\data when it asks for an address locator in these instructions: <a href="http://resources.arcgis.com/en/help/main/10.2/index.html#/in_ArcMap/002500000026000000/" style="color: #1155cc;" target="_blank">http://resources.arcgis.com/<wbr></wbr>en/help/main/10.2/index.html#/<wbr></wbr>in_ArcMap/002500000026000000/</a></div>
Anonymoushttp://www.blogger.com/profile/16203487152727179441noreply@blogger.com0tag:blogger.com,1999:blog-5081137459980209833.post-7537982959317150602014-01-30T14:19:00.003-05:002014-01-30T14:19:45.167-05:00Plotting and Projecting Coordinates<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
So you have some data that includes latitude and longitude, you add it to the map ... and it doesn't line up. You've got some spatial reference/projection problem. Figuring out what coordinate/projection system your data came from is not always straightforward, and often involves looking more deeply into the source of your data (for metadata). One rule of thumb: if your data shows up around the horn of Africa in the Atlantic Ocean, you're probably trying to display unprojected coordinates in a view (or with other data) that's in a projected system. Most of the time that you have unprojected coordinates the data will be in WGS 1984 or NAD 1983 (HARN or not). You can often figure out which one by trial and error.</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
In any case here are all steps for going between unprojected coordinates and a projected system. These are instructions for ArcMap, but similar would apply for QGIS.</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
We'll plot the coordinates, export the data, and project it.</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
1. Add the tabular data (xls or csv usually) to ArcMap. Right click on the layer and choose "Display X Y data", choosing latitude, longitude and WGS</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFrwWpGD2lFrTGhosBlRBKyD2r-rVLp7KSZ27iHAmB_83KIKDOSKjTlZMMHK6dlxFN4ld_uDIIcqB9UsJz-NduZx9Mhiys49R9qdU06V-SIYM-ks1Fg5faI0zDw5isOtpf-S30v4mC7_Ny/s1600/plotCapture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFrwWpGD2lFrTGhosBlRBKyD2r-rVLp7KSZ27iHAmB_83KIKDOSKjTlZMMHK6dlxFN4ld_uDIIcqB9UsJz-NduZx9Mhiys49R9qdU06V-SIYM-ks1Fg5faI0zDw5isOtpf-S30v4mC7_Ny/s1600/plotCapture.PNG" height="320" width="202" /></a></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
2. From the created plot layer, export to feature class (shapefile), and add this to the map</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
3. Project this shapefile into the projection of the GIS data</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1Z7R6kERGQNZrJKwLbgyIxKjXbzCq1afTGBQTw7gzg9tz22YOVBRBT_FfBJMsWF2cslP9-DDLRmrb6S0xcUNPqffFFdo58x294Dmhb7Bvessyfju3fMr8qUUYeqh_oRidZ3nDj9-vu3mE/s1600/projectionCapture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1Z7R6kERGQNZrJKwLbgyIxKjXbzCq1afTGBQTw7gzg9tz22YOVBRBT_FfBJMsWF2cslP9-DDLRmrb6S0xcUNPqffFFdo58x294Dmhb7Bvessyfju3fMr8qUUYeqh_oRidZ3nDj9-vu3mE/s1600/projectionCapture.PNG" height="221" width="320" /></a></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
Anonymoushttp://www.blogger.com/profile/16203487152727179441noreply@blogger.com0tag:blogger.com,1999:blog-5081137459980209833.post-85958582954985787212014-01-13T10:16:00.002-05:002014-02-20T16:18:05.062-05:00ArcGIS Online for GeocodingAs I noted in my last post, UD has an ArcGIS Online subscription. As part of that service we have credits to be used (frugally) towards geocoding. Just let me know you are interested, and I'll sign you up. You'll receive an email with details about logging in and completing the sign up. Instructions for pointing to the service from ArcGIS, with a link to instructions on geocoding a table of addresses, is here: <a href="http://resources.arcgis.com/en/help/main/10.1/index.html#//00250000004v000000">http://resources.arcgis.com/en/help/main/10.1/index.html#//00250000004v000000</a><br />
<br />
Geocodes cost UD 1 service credit per 25 addresses. <i>If you would like to geocode more than 100 addresses, I may refer you to other options for geocoding.</i>Anonymoushttp://www.blogger.com/profile/16203487152727179441noreply@blogger.com0tag:blogger.com,1999:blog-5081137459980209833.post-16912321979477839652014-01-08T09:47:00.001-05:002014-01-08T09:47:40.058-05:00UD's ArcGIS Online Subscription<div style="color: #222222; font-family: arial; font-size: small;">
You'll be glad to hear that the ArcGIS Online Subscription is included as part of our campus site license. We've been granting access to the subscription for no extra charge. If you are paying your annual ArcGIS charge, you're already paying for a portion of our campus site license.</div>
<div style="color: #222222; font-family: arial; font-size: small;">
<br /></div>
<div style="color: #222222; font-family: arial; font-size: small;">
However, we have a limited number of service credits (12,500 remaining at the moment). The administration tools for the subscription are pretty limited, so we ask that you use credits carefully. Here's a link to see how credits are used: <a href="http://www.esri.com/software/arcgis/arcgisonline/credits" style="color: #1155cc;">http://www.esri.com/software/arcgis/arcgisonline/credits</a>. In many cases there are desktop-based alternatives for the most "expensive" operations (e.g., tile caching, geocoding, analysis). I would be happy to suggest alternatives if you think something is looking expensive. We may also end up charging for the subscription at some point, but I don't anticipate that we'll do that in the coming year.</div>
<div style="color: #222222; font-family: arial; font-size: small;">
<br /></div>
<div style="color: #222222; font-family: arial; font-size: small;">
Once I've invited you to the subscription, you'll see an email notification letting you know how to connect. If you already have an Esri account, you can sign in with that. Otherwise you'll be prompted to create an account. If you already have a "public" ArcGIS Online account, you may want to keep it separate from the subscription.</div>
Anonymoushttp://www.blogger.com/profile/16203487152727179441noreply@blogger.com0tag:blogger.com,1999:blog-5081137459980209833.post-74913067754721272592013-08-12T15:57:00.000-04:002013-08-12T15:57:09.018-04:00Doing "Bulk Imports" to OpenStreetMap<span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Uploading existing datasets of any significant size ("bulk imports") to OpenStreetMap involves serious consideration, above that of ordinary updates and edits.</span><br />
<span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;"><br /></span>
<span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">I have done bulk imports to OSM before for UD/Newark Data. I used </span><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">shp2osm (</span><a href="http://wiki.openstreetmap.org/wiki/Shp2osm" style="background-color: white; color: #1155cc; font-family: arial, sans-serif; font-size: 13px;" target="_blank">http://wiki.openstreetmap.<wbr></wbr>org/wiki/Shp2osm</a><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">) to convert from </span><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">shapefile to osm format and then used JOSM </span><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">(</span><a href="http://wiki.openstreetmap.org/wiki/JOSM" style="background-color: white; color: #1155cc; font-family: arial, sans-serif; font-size: 13px;" target="_blank">http://wiki.openstreetmap.<wbr></wbr>org/wiki/JOSM</a><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">) to compare to osm data, edit </span><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">where needed, and upload the data/changes.</span><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">Here is a comprehensive page on doing bulk imports: </span><a href="http://wiki.openstreetmap.org/wiki/Imports" style="background-color: white; color: #1155cc; font-family: arial, sans-serif; font-size: 13px;" target="_blank">http://wiki.openstreetmap.org/<wbr></wbr>wiki/Imports</a><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><br style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;" /><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">OSM gives priority to smaller edits, as part of its grassroots </span><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">philosophy. Partially because of this, it's important to tread </span><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">lightly when doing bulk updates. That's why I like JOSM. I can see </span><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">the existing data and how my updates will change that (if so) or </span><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">potentially create duplicates. The imports guidelines link </span><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">(</span><a href="http://wiki.openstreetmap.org/wiki/Import/Guidelines" style="background-color: white; color: #1155cc; font-family: arial, sans-serif; font-size: 13px;" target="_blank">http://wiki.openstreetmap.<wbr></wbr>org/wiki/Import/Guidelines</a><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">) is especially </span><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">helpful in understanding norms and rules for updates.</span>Anonymoushttp://www.blogger.com/profile/16203487152727179441noreply@blogger.com0tag:blogger.com,1999:blog-5081137459980209833.post-25583763951350974322013-08-09T14:09:00.001-04:002013-08-09T14:25:39.549-04:00Excellent public remote imagery webinarbest webinar I've ever seen on public satellite imagery, though it's by Exelis so expect lots of ENVI examples https://www3.gotomeeting.com/register/697671558Anonymoushttp://www.blogger.com/profile/16203487152727179441noreply@blogger.com0tag:blogger.com,1999:blog-5081137459980209833.post-10150736091123147992013-07-30T12:48:00.000-04:002013-07-30T12:48:43.553-04:00csv2gftI've posted a public branch of code from the <a href="http://sites.udel.edu/limabean/" target="_blank">Lima Bean</a> project to github as <a href="https://github.com/bmearns/csv2gft" target="_blank">csv2gft</a>. This might be very useful for someone who is doing daily pushes of new records to a Google Fusion Table from a csv dump.Anonymoushttp://www.blogger.com/profile/16203487152727179441noreply@blogger.com0tag:blogger.com,1999:blog-5081137459980209833.post-46816908344607692532013-05-08T17:21:00.001-04:002013-05-08T17:23:14.933-04:00Render Priority and KML from PHP/Postgres in one exampleWorking from a Google example I wrote some PHP that outputs KML from Postgres data, <region><lod>using region and lod to provide 'render priority' feel, based on a DB field. Here you go: <a href="https://github.com/bmearns/kml-priority">https://github.com/bmearns/kml-priority</a></lod></region>Anonymoushttp://www.blogger.com/profile/16203487152727179441noreply@blogger.com0